home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
pascal3.arc
/
PASCAL.B04
< prev
Wrap
Text File
|
1989-02-04
|
179KB
|
5,346 lines
=
From: Heikki Levanto
To: Charles Falconer Msg #2, 22-Jan-89 08:42pm
Subject: Re: C versus PASCAL
>> > Can't help but wonder where Kahn is going to take TP from here
> but don't ask for more speed - try the equivalent C program on TC2.0, and
> note that 5 sec compile on TP becomes 1 min compile/link on TC,
I *DO* ask for more speed. Programs and computers can / will / should always
be faster smaller and more powerful. I'm well aware that Turbo is hell fast
for a compiler, and I love that, but still. I have been waiting for it to
compile, and in my opinion the machines ought to wait for people, and not the
other way around.
Just for the record, I'm not complaining. SOmeone asked what more could there
be, and I came with some more ideas.
BTW, I told of a small bug here, you can't put an init section of an unit into
an include file. Has that message disappeared, or don't you folks care ?
- Heikki
--- ConfMail V4.00
* Origin: LSD - Levanto Software Development (2:230/22.28)
*** There is a reply. See #18.
From: Mike Janke
To: Tom Bocchino Msg #3, 26-Jan-89 04:59pm
Subject: File Move Procedure
> Would anybody know where I might be able to get a procedure
> to move a file
> from one directory to another directory.
I'm kinda new at this and haven't tried it, but how 'bout the built in rename
procedure?
--- FD 2.00
* Origin: Kendall BBS - Miami's First QuickBBS (1:135/4)
*** There is a reply. See #20.
From: Mike Janke
To: Rolf Thomassen Msg #4, 26-Jan-89 05:26pm
Subject: Re: Help On The Way
> WHILE KeyPressed DO IF ReadKey = #0 Then ;
Can you explain the Then without anything following it? I first saw that in a
example in the Turbo Pro manual and thought it was a misprint... but the darn
thing worked.
--- FD 2.00
* Origin: Kendall BBS - Miami's First QuickBBS (1:135/4)
*** There is a reply. See #98.
From: Mike Janke
To: Patrick Edwards Msg #5, 26-Jan-89 05:47pm
Subject: Pascal Sucks
> > IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant
> Basic is good, but you have to look at what is possible in
> pascal, sure its very stricted but theres ways of getting
You should be awarded for the composure you displayed in your message to
that... person.
--- FD 2.00
* Origin: Kendall BBS - Miami's First QuickBBS (1:135/4)
*** There is a reply. See #30.
From: Tom Keifer
To: Jim Forbes Msg #6, 27-Jan-88 08:27pm
Subject: Re: Compiler Directives
-> TP5 Reference Guide pg. 430 "Compiler directives in the
-> source code
-> always override the default values in both the
-> command-line compiler
-> and the IDE."
->
-> The following is a piece of code from a program that I
-> am writting.
-> .
-> .
-> {I$-} REPEAT
Ok, there's your problem it should be {$I-} not {I$-} (the '$' First!)
THen it should work properly.
-> GOTOXY(52,Num_Address+7); WRITE(' ':5); {Erase
-> any errors }
-> GOTOXY(52,Num_Address+7); {if
-> loop is necessary}
-> READ(Value);
-> UNTIL IORESULT=0;
-> {I$+} IF Value IN [0..Num_Address] {Note: 0 implies none
-> chosen}
You have to change it here also to {$I+}
--- QuickBBS v2.01
* Origin: The Expressions BBS 305-884-5355 Miami Springs Fla. 135/39
(1:135/39)
*** There is a reply. See #154.
From: Scott Samet
To: Charles Falconer Msg #7, 28-Jan-89 12:38pm
Subject: Re: Records in Files
> > therecd := rcdfile^;
> > get (rcdfile);
>
> You are absolutely right - I stand corrected. However, the STANDARD
> meaning of read (defined in the STD) is "var := f^; get(f)". My own
> compiler won't accept the read(record).
The standard only defines READ for textfiles, although many compilers accept
it for typed files. Turbo Pascal nothing but READ.
--- FD TosScan .16 (286)
* Origin: Friends of Dorothy: Flying House doing Mach 10 (1:135/990)
From: Scott Samet
To: Dave Goggin Msg #8, 28-Jan-89 12:40pm
Subject: FUNCTION RETURN STRING?
> Unless Turbo Pascal is different than regular pascal (in this case) I
> don't see how you can return a string, from a function. I though you
> couldn't return structured variables from a function.
It is different, you can return strings.
--- FD TosScan .16 (286)
* Origin: Friends of Dorothy: Flying House doing Mach 10 (1:135/990)
*** There is a reply. See #57.
From: Wes Fisher
To: Mike Janke Msg #9, 28-Jan-88 08:05am
Subject: Thanx!!
Thanx for your help on the bits!! Would have crashed ya, but I don't have
the money to pay for Long Distance calls! Thanx, It works great, and I'm
now using it.
Wes
--- QuickBBS v2.03
* Origin: WriteLn('I`ve got Pascal's Elbow!'); Connect 2400! (1:130/39)
*** There is a reply. See #156.
From: James Snart
To: All Msg #10, 27-Jan-89 09:17am
Subject: COMM source
Does anyone know I can find a Turbo Pascal source for a small communication
program. I have pibterm 4.0 but it's too big and most options I never use.
--- QuickBBS v2.03
* Origin: Somewhere on Cherry St. (1:170/211)
From: Lou Garner Of 150/501
To: Bruno De.montis Msg #11, 22-Jan-89 10:48pm
Subject: Re: UPDATE POLICY
>Quoting Borland's license agreement :
>
>"To take advantage of this upgrading procedure, you must send:
> >> The discs and manuals of your product.
>So I don't know *how* you could sell the previous version of the
soft.
I don't know where that policy comes in. I upgraded both TC and TP
in the big package, handled everything by phone, and have my old TP
and
TC manuals an
--- ConfMail V4.00
* Origin: Megaboard ]I[ (717)561-8150 Hayes 9600v (1:150/513)
From: Randy French
To: All Msg #12, 26-Jan-89 12:10pm
Subject: Volume Labels
Does anyone know of an EASIER way to write/change volume labels without using
FCB's? I have a unit that uses FCB's to write/change a volume label but I'm
trying to find an easier way if possible.
Thanks for any info,
Randy French
---
* Origin: The Questor Project - (703) 525-7220 HST (Opus 1:109/130)
From: Charles Falconer
To: Holger Schurig Msg #13, 27-Jan-89 08:38am
Subject: Generate system errors
> CF> - Means to generate a system error. Can be done now
> CF> - with exitproc and halt, but awkward.
>
> Please explain. You can generate a system error (if you
> ever want this) by accessing to drive Z:, which should
> not be accesible. Or set the refresh count to a very low
For example, I have a unit TXTFILES that implements ISO standard versions of
read for integer, real, etc, together with versions that return error booleans
rather than aborting. When they abort I want to generate the same error as
Turbo originally did. I can do this by setting a flag and halting with an
error code, and the initialization for the unit has linked into the exit
procedure chain. At exit I then give a verbal message, rather than the
cryptic error #. So far all works fine, but if the system is run in the
integrated environment the error is ignored, and I dont get the editor
positioned etc. (I have used some code to pick off the callers address to the
readint procedure, and stored that as the error location). All works fine, at
least in TP4, except for the integrated environment.
I hate cryptic error messages, so one day I plan to create a baby unit that
will translate them into verbiage. This has the added advantage that you can
add a message to your own systems telling the user to report the problem
(which should not have happened).
---
* Origin: Alice's Restaurant (Opus 1:141/488)
From: Charles Falconer
To: Holger Schurig Msg #14, 27-Jan-89 08:51am
Subject: Re: USES style
> CF> Poor mans equivalent of "FROM module IMPORT ..."
>
> I have never understand the need this FROM module IMPORT
> <long list of> everything i want to use> in Modula. One reason
> might be to simplify the compiler. But a good compiler should
> work for me, not i for him !
Of course tastes vary. I want to know where to look for the details if
needed, and having an extremely short memory I want to do a search in the
current file. A split screen editor helps. Thus I often use NE (Norton
editor), which is fast, small, and allows me to manipulate 2 files. I often
find myself extracting a procedure header or such from one to the other and
commenting it out, just to have it available for later reference.
For similar reasons I hate systems that clear the screen without being told.
Rather than complex linkages, simply leave the previous report such as a
directory, on the furshlugginer screen. For example, Telix allows me to call
a directory, but then clears. Now I go through the
transmit sequence, and mis-remember the exact name. Around we go again.
---
* Origin: Alice's Restaurant (Opus 1:141/488)
*** There is a reply. See #118.
From: Charles Falconer
To: Holger Schurig Msg #15, 27-Jan-89 09:03am
Subject: Re: GOTOs
> {$B+} { boolean evaluation must be set to short-circuit
> for this ! }
> REPEAT
> IF NOT (part1 AND part2 AND part3) THEN <other code>
> UNTIL done;
I avoid that type of code simply because short circuit evaluation is not part
of the ISO standard, and the resultant portability bugs, or problems if Turbo
is set for sequential conjunction, are extremely hard to find. If partN is a
procedure the net difference in running time must be miniscule. I do however
<sometimes> use
IF (i <= max) AND (xarray[i] <> 9) THEN BEGIN (* COMMENT here *)
for efficiency and readability.
An earlier message of yours mentioned errors by altering refresh. I don't
understand.
---
* Origin: Alice's Restaurant (Opus 1:141/488)
*** There is a reply. See #119.
From: Paul Lindquist
To: All Msg #16, 26-Jan-89 03:54pm
Subject: WILDCARDS
I am writing a simple filter program to use with my BBS program. I am wanting
to take all files that match a wildcard criteria and process them. I want to
know how I can define how to read wildcard, etc. from my DOS directory.
IE I want to process all .TXT files, I would type filter *.txt. How could i
get this to list out file1.txt, file2.txt, file3.txt, etc.
Paul Lindquist
--- TBBS v2.0
* Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
*** There is a reply. See #17.
From: Bruce Mahoney
To: Paul Lindquist Msg #17, 27-Jan-89 06:42pm
Subject: Re: WILDCARDS
-------
var sr : SearchRec;
begin
FindFirst( '*.TXT', 0, sr );
While DosError = 0 do
begin
{ do your process with sr, is = filename }
FindNext( sr )
end;
-----
Must have 'USES Dos;'
--- QuickBBS v2.03
* Origin: ]≡[ The Pascal Programmer's Club ]≡[ (918) 438-2749 (1:170/403)
*** Part of a conversation.
From: Brian Maher
To: Pat Anderson Msg #18, 26-Jan-89 03:27am
Subject: Re: C versus PASCAL
Pat, Have you considered switching to one of the Modula-2 compilers that are
out there?
I personally use the FST Modula-2 compiler and have found it to be a terrific
compiler.
---
* Origin: BECS MSDOS OPUS, Bellevue, WA - 206/451-1274 (Opus 1:343/101)
*** Part of a conversation.
From: Mike Hinds
To: Matt Franckiewicz Msg #19, 26-Jan-89 12:18pm
Subject: Nan
MF> The 5.0 manual says that certain real numbers are NaN 's. So what is a
MF> NaN?
Not A Number - more of a philosophical concept than hard math, but the
processor has been taught to recognize certain values as representing NaNs. TP
didn't bother.
--- msged 1.96L MSC
* Origin: /\/\ Turbo NorthWest \-\ Everett, Washington (1:343/27.2)
From: Mike Hinds
To: Tom Bocchino Msg #20, 26-Jan-89 12:24pm
Subject: File Move Procedure
TB> Would anybody know where I might be able to get a procedure to move a
TB> file
TB> from one directory to another directory.
You won't believe it until you try it, but the Rename procedure will do
exactly what you need (ASSuME-ing, of course, that the source and destination
directory are on the same drive). Try this:
VAR F : File;
BEGIN
Assign(F, 'C:\DIR1\TESTFILE.TST');
Rename(F, 'C:\DIR2\TESTFILE.TST'); { full path name a MUST! }
END.
Could it possible be easier?
--- msged 1.96L MSC
* Origin: /\/\ Turbo NorthWest \-\ Everett, Washington (1:343/27.2)
*** Part of a conversation.
From: Mike Hinds
To: Michelle Wyner Msg #21, 26-Jan-89 12:30pm
Subject: TP 5.0
MW> I just got TP 5.0. REAL great program, but the users manual doesn't
MW> help much in learning Pascal. I've read it from front to back, and I
MW> know the basics, but I need to know more. Can anyone suggest a program
MW> (not the TP tutor for $69.95) or a book (under $20.00 preferably)
MW> that'll help me? Thanks.
By all means get Mastering Turbo Pascal 4.0 by Tom Swan. You won't be sorry.
His book is nearly legendary, and applies well to TP5.
By all means DO NOT get Mastering Turbo Pascal 5 by another author, who ripped
off Tom Swan's title, and by several accounts has nothing to say that you
probably don't already know.
Other good recommendations include The Complete Pascal (fat black book, author
forgotten) and Turbo Pascal Tutor by (guess who!) Borland, includes program
disk(s). Some reservations on that one - others in this echo have mentioned
bugs in their program, but still a worthwhile learning tool.
--- msged 1.96L MSC
* Origin: /\/\ Turbo NorthWest \-\ Everett, Washington (1:343/27.2)
*** There is a reply. See #28.
From: Mike Hinds
To: Dave Hess Msg #22, 26-Jan-89 12:56pm
Subject: Help
DH> I declared the top window something like
DH> this...WINDOW(1,1,81,1) and the bottom I think Window(24,1,104,1)???
DH> What am I doing wrong?
Just like your ClrScr problem. You haven't read the manual.
--- msged 1.96L MSC
* Origin: /\/\ Turbo NorthWest \-\ Everett, Washington (1:343/27.2)
*** There is a reply. See #33.
From: Reinhardt Mueller
To: Andy Lester Msg #23, 26-Jan-89 09:02pm
Subject: Re: A Little Problem
AL> So, yeah, I've done a little bit of Pascal programming, and
AL> I'm glad we did it in Pascal, because it's been very easy to
AL> maintain, although Apple Pascal is abominably slow and has a
AL> few bugs in it.
AL> We ARE looking at phasing IBM clones as the Apples die, and
AL> that development is being done in Turbo 4.0. We just port
AL> over the source code, make some changes here and there, and
AL> run it.
Make SOME changes here and there and run it? They way you're
talkin' about it makes me think you're switching to the MS-DOS
hosted version UCSD p-system on the IBM! If you're thinking about
just porting it over to Turbo 4.0, first think about getting
Turbo 5.0 Professional. You have more work ahead of you than you
think and you'll want a debugger for those big jobs. Having
overlay capabilities also helps.
First of all, your screen coordinates in the turbo start at 1. In
p-System they start at 0. You have one more screen line to play
with on the IBM. You have the names of the screen-handling
procedures to deal with too. If your program uses the Apple's
arrow keys you'll have to account for that too. Your users won't
appreciate having to use Ctrl key combinations! <<grin>>
Are you using the SCAN function in the Apple version? Turbo
Pascal doesn't (and has never had it, but could use) the SCAN
function. Be prepared to write a/some little assembly language
routine(s) to emulate it. That's what I'm thinking of doing now.
Are you directly comparing two records of the same type with =?
That's illegal in Turbo. You'll have to compare each field
separately in Turbo or use a trick mentioned somewhere in the
Turbo manual. If those records you want to compare contain
variant fields, you won't be able to reliably use the trick.
TYPE
S = PACKED RECORD
first_field : 0..1;
second_field : 0..7;
third_field : 0..3;
fourth_field : 0..255;
END;
If you have stuff like the above, it will take up 4 bytes in
Turbo but only 2 bytes in UCSD Pascal. Remember that if/when
using free unions to test bits from wierd stuff coming in from
and going to the hardware.
No, I'm not saying that you should have gone with the MS-DOS
hosted p-System. That would be a big mistake. You might get the
Apple-to-IBM conversion done sooner, but development and program
execution would still be slow on a PC -- even an AT! Turbo has
much more to offer!
--- Via OpXpress V1.02 Always a notch off....just like the Madman!
* Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
*** There is a reply. See #130.
From: Reinhardt Mueller
To: Tim Geisweit Msg #24, 26-Jan-89 09:13pm
Subject: Re: goto's
JO> If you're going to program in BASIC I suggest you try TRUE
JO> BASIC. Its a version of BASIC by the guys who originally
JO> created the language. It does not allow GOTO's and you will
JO> soon find that you don't need them at all if you use it.
Tim, if/when you have lots of existing programs written in
BASICA/GWBASIC, you might also try QuickBASIC v4.5 by Microsoft.
$99 retail, maybe $70 at discount stores. It's most compatible
with interpreted BASIC.
GOTO's are allowed but you should have little if any need for
them. It has multi-line IF-THEN-ELSE, SELECT CASE constructs
(like Pascal's CASE), WHILE-DO LOOP and DO LOOP WHILE (like
Pascal's WHILE and REPEAT-UNTIL constructs), named subroutines
and true named functions. Yes, it still has the DEF FN kind too,
but the procedures (SUBs) and FUNCTIONs allow you to pass data as
arguments (by value or reference) in a parameter list. Functions
and SUB's have local variables, thereby reducing or eliminating
side-effects caused by accidently using the same variable in two
subroutines.
Line numbers are optional; you can use labels instead. Even
in a large program you shouldn't need a lot. The only exception I
can think of is trapping I/O (such as disk and printer) errors.
You can break your program up into modules (analogous to UNITs in
Turbo and USCD Pascal), letting you create reusable modules. If
you do it right, you should be able to isolate your disk/printer
I/O and their error-trap (ON ERROR GOTO) routines to one module.
That way the rest of your program won't be messed up with GOTO's.
QuickBASIC also has an integrated source-level debugger to help
you trace through your program when things go wrong.
Do you hate that FIELD statement for doing random I/O? Too
many variables for one program line? Tired of LSET-ing and
Rset-ing? You don't need it in QB. The TYPE statement lets you
declare records (they call 'em user-defined types). You can have
a array of records but not record of arrays.
In my opinion, when writing a new program you shouldn't use
GOTO's if something better is available, but they're nice to have
around. Example: You're converting an interpreted BASIC program
to compiler BASIC. In that way, you see how the program runs as
you work at getting rid of the GOTO's. I've converted a BASICA
program (a label-maker) to QuickBASIC and just about all the
GOTO's are gone, and boy, is it easy to read! And yes, it did
yell when I tried to GOTO a label that was in FUNCTION or
SUBroutine. It will also yell if you try to get out of a SUB or
FUNCTION to another part of the program with a GOTO. One way in,
one way out! I would say more about QuickBASIC, but this IS the
PASCAL echo.
True BASIC? I've never used it so I can't honestly knock it
or praise it. Obviously Joe O'Leary likes it. From what I've read
about it, it's a good try, but a little too late.
I feel that Microsoft BASIC (interpreted and compiled) has
become the standard. If you can use QuickBASIC with no GOTO's,
you'll be as near to Pascal as you can get without actually
getting Turbo 5.0! Get it! You won't be disapointed. You'll won't
want to go back to BASICA! Learning Pascal will be that much
easier and faster once you've played around with QB for a while.
--- Via OpXpress V1.02 Always a notch off....just like the Madman!
* Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
*** There is a reply. See #67.
From: Reinhardt Mueller
To: Douglas Peterson Msg #25, 26-Jan-89 07:57pm
Subject: Re: TURBO PASCAL 5.0
-> I must admit that I used MicroStar as my Word Processor for
-> the longest of times. (until Sprint came along...)
I also use MicroStar as my word processor, er um text editor!
Have been ever since I got it last March! I'll admit it's a bit
of a RAM hog but what a powerhouse!
Some parts can be overlaid to give you a bit more memory for
those huge files. If you try to add overlays on your copy, be
careful. Some of those assembly routines are near calls. You'll
have to change those near-call assembler routines to far calls
and re-assemble them before putting the {$F+,O+} directives in.
Sprint? Too much money!
--- Via OpXpress V1.02 Always a notch off....just like the Madman!
* Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
From: Kevin Lowey
To: Greg Wood Msg #26, 26-Jan-89 05:23pm
Subject: Re: RE:tug O'wards Iv
GW>Kevin I should be able to help you out. Seeing as how the stamp
GW>for your letter would cost 25 cents and the stamp to TUG 25 cents
GW>I would only be out 50 cents. Send me a copy of the letter in
GW>netmail or this echo along with your address and any other
GW>information I might would need and I will mail it for you.
Thanks for the offer!! However, I've learned from other people about
International Postage (red face). I didn't know there was such a thing. Oh
well, thanks for the offer.
By the way, the reason they are taking this cheaper route is
interesting. BORLAND used to include their prospectus in every BORLAND
product. That gave TUG all the free advertisement they needed. However,
Borland has stopped doing this, so now no one knows about TUG. For all you
TUG members out there, please spread the word. For all the people that are
NOT TUG members, I'll try and find their address and subscription form at home
and will post another message with it.
-- Kevin Lowey
---
* Origin: University of Sask. Computing Services (Opus 1:140/43)
*** There is a reply. See #131.
From: Colten D. Edwards
To: Robert Turner Msg #27, 26-Jan-89 12:00pm
Subject: FINDFIRST procedure TP4
Lets see an example of your usage of both commands. One thing about Exec is
that unless the program is in the current directory you'll have to specify a
complete path/filename.ext to the program. As for FindFirst
var DT : Searchrec;
FindFirst(PrgrmName,Flags,DT);
Where Flags is a Attrib byte of one of the following
Directory,Anyfile,etc...
Use anyfile and test DT.Attr to see if it's equal to Directory. If it is then
do a FindNext(DT)
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** There is a reply. See #66.
From: Colten D. Edwards
To: Michelle Wyner Msg #28, 26-Jan-89 12:09pm
Subject: TP 5.0
Look for the Book Mastering Turbo Pascal v4 Second Edition by Tom Swan.
Published by Hayden Books ISBN # 0-672-48421-8. I just got it from a book club
and wish I had seen it when I first started programming. Lots of examples and
a command reference..
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** Part of a conversation.
From: Colten D. Edwards
To: Chris Austin Msg #29, 26-Jan-89 12:13pm
Subject: ASYNC10.ARC
I've recompiled the src with masm 5.1 and Tasm 1.0 no problems. Found the src
same place as you in fact...
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** There is a reply. See #65.
From: Mark Hopkins
To: Howard Jiang @ 902/10 Msg #30, 25-Jan-89 06:30am
Subject: Pascal Sucks
In a message of <20 Jan 89 20:18:48>, Howard Jiang @ 902/10 (1:10/8) writes:
> IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant Even get a
>Taste!!!!!! You Pascal Programers Bit The Big One!!!!!!
> I Think The Best Language(And I Use IT) is BASICA and Pascal Really
>Sucks!!!!!
> If You Have any Comments to me call Me at
> 602-297-6490
> I Really Like To Get Into Discusions!!
Nice try bud, but just a bit obvious, huh? Remember... just say NO!
--- msged 1.96S ZTC
* Origin: SWAT: Blaise-ing Code! SeaSoft Network (1:343/8.13)
*** Part of a conversation.
From: John Simmons
To: Howard Jiang @ 902/10 Msg #31, 27-Jan-89 12:06pm
Subject: Re: Pascal Sucks
Ya know, it's a real bother to us grown ups when you 8-year-olds think they
know what they're doing. Get a life jerk.
--- QuickBBS v2.03
* Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
*** Part of a conversation.
From: John Simmons
To: MIKE SIMMONS Msg #32, 27-Jan-89 12:18pm
Subject: :-
Are we related????
--- QuickBBS v2.03
* Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
*** There is a reply. See #128.
From: John Simmons
To: Dave Hess Msg #33, 27-Jan-89 12:21pm
Subject: Help
Every time you use the window command, the previous window is wiped out,
and the new window takes over. The ranges you specified are also wrong.
The max window is (1,1,80,25). Your numbers were too high, and I assume
that the windows wrapped to the topp of the screen. Maybe I'm wrong about
that though.
--- QuickBBS v2.03
* Origin: Bytes 'R Us; San Ysidro CA (619) 428-9773 (1:202/112)
*** Part of a conversation.
From: Tim Van Over Of 152/18
To: Moderator Msg #34, 28-Jan-89 12:58am
Subject: Descriptor
Moderator,
We need a description to attach to the label of this conference and
rather than take it upon ourselves we decided it would be best to allow the
moderator decide in whichever manner he/she felt suited (user vote ect...).
I carry quite a few of conferences and to be frank with you I am tired
of dreaming up descriptions for conferences that I do not participate in.
An idea occured to me... what would it be the result if everyone that
moderated a conference took advantage of the individual origin file option
in most mail programs an example below...
"* Origin: DAILY - Read the Bible in a year (KJV) (1:152/18)"
+- 08 -+ +----------- 30 -----------+
If your mail program does not allow individualized origin lines than
perhaps a personal tear line fitted to funtion key (macro) would do, in
anycase we aren't talking about that much luggage as it is the moderator
that is carrying this flag and not the whole conference.
"--* DAILY - Read the Bible in a year (KJV)"
+- 08 -+ +----------- 30 -----------+
--* Tv "ALL in favor... All opposed... Whatcha' all think??"
--- ConfMail V4.00
* Origin: Zone 8 NETWORK Gateway - (1:129/34)
*** There is a reply. See #139.
From: Jeff Posey
To: All Msg #35, 25-Jan-88 04:54pm
Subject: Turbo 4.0
Help.. In a program I put in
Uses Blah, blah, graph;
begin
initgraph;
circle(blah);
end.
and had no errors but when i ran it it said
"You need to use initgraph first" or something? whats the deal?
Jeff
--- QuickBBS v2.03
* Origin: The Gold Mine...The GAME Board (8:7102/8)
*** There is a reply. See #142.
From: Dale Barnes
To: George Falcon Msg #36, 27-Jan-89 07:59am
Subject: Re: Tpb 5.0
-> --> > No easy or cheap way around.
-> -->
-> -->I beg to differ. Opus is an easy and cheap way around
-> -->TPB5.0. Until an author releases something fully
-> -->compilable from an inexpensive package like TP Pro 5.0 by
-> -->itself, the overall effort and expense required will still
-> -->be too steep for me to work with TPB. No offense intended,
-> -->but I conclude it's still not for me.
No Offense taken. I was replying to someone asking if TPBoard 5.0
source was avalible completely. I was just telling them what the
author shows to be needed to recompile the code. I for one do not
use TPBoard either but it seems to be a good package.
Dale
--- QuickBBS v2.03
* Origin: Home of Majik Board(tm) (HST) Shalimar, FL (NEC 366) (1:366/200)
*** There is a reply. See #167.
From: Dave Goggin
To: All Msg #37, 28-Jan-89 12:34pm
Subject: PASCAL RECURSION
_RECURSION_ _AS_ _AN_ _ALTERNATE_ _METHOD_
The following statistics were found in a research
study this week, whether recursive procedures were really all that
time inefficient.
TEST 1: bubble sort an array of integers. Identical array presented
to both recursive and iterative procedures. times are in minutes,
using 6502B processor.
#elements recursive iterative
300 1:33.32 1:32.13
360 2:26.30 2:25.74
600 6:01.70 6:00.57
test 2: find the factorials from 1 to 23 using a recursive
factorial procedure. time in seconds. answers returned as reals.
recursive: 1.61 sec
iterative: 1.79 sec
test 3: find the first 18 numbers in the fibonacci sequence. time is in
seconds.
recursive: 14.89 sec
iterative: 0.13 sec
the high inefficency procedure was this:
FUNCTION RecursiveFib (n : INTEGER) : INTEGER;
BEGIN
IF (n=1) OR (n=2)
THEN RecursiveFib := 1
ELSE RecursiveFib := RecursiveFib(n-1) + RecursiveFib(n-2);
END;
the results seem to show that in order for recursion to work, you must plan
carefully to get the maximum efficiency, and not overuse
recursion when a simple solution exists.
eeeeeeeeeeeeeeeeeeeeeeeeeee
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
*** There is a reply. See #143.
From: Joerg Hegermann
To: dj murdoch Msg #38, 25-Jan-89 04:23pm
Subject: re: Units
Hi there,
You were right. I discovered it only after I've sent this message.
I was probably too estonished myself and didn't read the number carefully. In
fact it was the error number for the data segment.
Anyhow, nice to know that there are people outside, willing to help.
See ya round...
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
*** There is a reply. See #39.
From: Joerg Hegermann
To: Dj Murdoch Msg #39, 25-Jan-89 04:31pm
Subject: Units
Hi there,
Remember me?
Always when I browse through thses messages from you guys I wonder how many
useful units you have over there in the States. We here in Singapore have
very few really good units on our boards.
I was wondering whether you might be able to give me the names of your best
units and the boards to be found.
If one can access to those boards with fast registering, I would like to dl
some. Or better, if I sent you a return envelope, and some disks, could you
copy me some of your best units?
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
*** Part of a conversation.
From: Joerg Hegermann
To: Tom Bradford Msg #40, 25-Jan-89 09:22pm
Subject: Re: Style Debate #9,005
Hi Tom,
I'm writing from Singapore.
I read your message regarding these F/X units.
They sounded interesting to me.
Are they public domain? And if so, is the source included?
I'd be interested in downloading them in orderr to learn some pascal, since
I'm still quite new to it.
Perhaps if you could get me an account in your BBs I could download it from
here? (That is if they aren't too big...otherwise I'll be poor due to the
phone costs from here to the States).
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
*** There is a reply. See #59.
From: Joerg Hegermann
To: Gary Doughty Msg #41, 27-Jan-89 03:36pm
Subject: re: Quick Sort
Hi Gary,
As far as I know there are some sorting routines in the Turbo Pascal Tutor. I
havn't got it myself, but perhaps anybody else out there can give you a
listing.
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
*** There is a reply. See #91.
From: Joerg Hegermann
To: Lee Bollard Msg #42, 27-Jan-89 03:43pm
Subject: re: TP run Dos prog.
Hi There,
If you have Turbo Pascal 5 then you might like to check out the EXEC procedure
on page 264...
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
From: Joerg Hegermann
To: Jim Roach Msg #43, 27-Jan-89 03:44pm
Subject: re: tp4 tutorial
Hi There,
I found the Turbo Pascal Tutor by Boarland quite useful.
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
From: Joerg Hegermann
To: Holger Shurig Msg #44, 27-Jan-89 04:03pm
Subject: Hi There
Hi Holger,
As you might realize from my name, I'm German too.
I'm living in Singapore, but will be going back to Germany in less than 6
months. I've been staying here for about 4 years.
I'm just about to finish my Abitur here.
I was just wondering how the modeming world in Germany is.
When I was the last ime in Germany there was practically nothing on compared
wth the over 150 public Bulletin Boards here in Singapore (consider that
Singapore is only an island of 20 x 40 Km).
From which state are you writing anyhow?
When 'll be going back to Germany I'll be living in Baden-Wuerttemberg close
to the lake of Constance.
I'm also thinking about setting up a BBs in Germany, since I've been running a
BBs here in Singapore for more than 2 years.
But how is it with the modems there?
I have a Hayes 2400 and a Smarteam 1200. As far as I know they are not
approved by the Bundespost, are they?
What modem are you using? Are there any Hayes command compatible modems that
are approved by the Bundespost?
Hope to be hearing from you soon...
Cheers
Joerg Hegermann
--- ConfMail V3.2
* Origin: THE SINGAPORE LINK (3:600/1)
From: Allen Lew
To: Randall Smith Msg #45, 27-Jan-88 03:18pm
Subject: Re: JoyStick Routine
Are you sure?????
Hey that's what my country men say!
--- QuickBBS v2.03
* Origin: Minfo - QBBS is quick! but slowed down by 1200 modem (3:600/17)
From: Hal Smith Of 600/1
To: Gary Godfrey Msg #46, 17-Jan-89 08:27pm
Subject: Re: Text Editor
Turbo Editor Toolbox 4.0
Four flavors.
1. Very simple
2. Binary Editor. (No assembler code, but a good unit)
3. Slightly complex editor.
4. MicroStar. Full Blown package with all sorts of goodies.
Also works with TP5, with a couple of delcaration changes, which are
documented.
-h
--- QuickBBS v2.03
fergivintr
--- ConfMail V4.00
* Origin: SpaceNet - WOCin' Slow at 2400 - Singapore (1:600/6)
From: Tony Shelton
To: brian corll Msg #47, 28-Jan-89 03:24am
Subject: .GIF
I think that the best way for you to get the GIF file is
for us to do it ourselves. Let me know what is best for you
and I'll do my best to help.
BTW, how many manuals does TP v5.0 come with. There was a
screw up in my order and Borland has sent me _2_ UPDATE
manuals, 1 USER'S GUIDE, and 1 REFERENCE GUIDE. Am
I missing anything?
Thanks,
Tony
--- Via OpXpress V1.03ß
* Origin: The Tech Connect - **HST** (1:124/6215)
*** There is a reply. See #144.
From: Tony Shelton
To: Murray Eisenberg Msg #48, 28-Jan-89 03:13am
Subject: Re: Turbo Pascal 5.0 with NEC V30/8087
>Thanks for the info that the underflow bug did not arise with your
>V30/8087-2. Do you have a code number or date on your V30? It's
>possible, of course, that there is a bug in some versions of V30
>that's fixed in others.
I installed my V30 about 2 years ago, so it is at least that old.
I've no experiance with that particular AST card, but the AST boards
where I used to work never gave any problems.
--- Via OpXpress V1.03ß
* Origin: The Tech Connect - **HST** (1:124/6215)
From: Jettero Heller
To: All Msg #49, 28-Jan-89 08:26pm
Subject: Opening Files
I have Lightspeed Pascall 1.11 for the Macintosh, and I am having trouble
opening files. I am in the process of creating an on-line game, and I want to
make the player files named after their name. I am trying to use an array to
do that, but it doesn't seem to work. Does anyone know how to create a knew
random access file which is named (called on) by the users name/alias for the
game?
---
* Origin: THE EXCHANGE (214) 517-8553 Plano, TX (Opus 1:124/3220)
From: James Williams
To: Peter Kolding Msg #50, 28-Jan-89 06:36pm
Subject: Setting typematic rate
>According to Norton this should double the typematic rate:
>
>program typematic_rate;
>USES DOS;
>VAR reg : registers;
>begin
> with reg do
> begin
> bl:= $04; {typmatic rate}
> bh:= $00; {typematic delay}
> ah:= $03;
> al:= $05;
> end;
> Intr($16,reg);
>end.
>
>But nothing happens when I call it. I run a clone 8088 XT
>with Pheonix ROM BIOS Ver.2.03. I 'suspected' an incompatible
>BIOS, but I run WordPerfect on the same system and it manages
>to control the typematic rate. I'd appreciate any help to get
>this working.
Pete, you should've looked closer at what Norton said: that function is
for the PCjr! That's why you cannot get it to work w/your system. I
also have a Phoenix ROM BIOS, and have yet to come upon a program, or
the knowledge with which to change the typematic rate. I've tried a PD
program, but w/o success. If, and when, I come across anything that
works, I'll let you know ASAP. Would you kindly do the same for me?
Til then,
=:(JRWZ):=
---
* Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
*** There is a reply. See #211.
From: James Williams
To: Ron Dexter Msg #51, 28-Jan-89 06:33pm
Subject: Screen-writes
>I'm trying to read & write to memory
>(off the screen). Well, actually I
>did it, but I was wondering if
>there is an easier way to go?
>Warn you, I only have v3.0.
An easier way than what? Maybe you did it, but how're we supposed to
know if what we do is easier or not if you don't even show us what you
did?
Anyways, This is how I do my direct screen-writes, but I've a Mono
monitor, so I've never had to worry about Snow for the CGA screen:
Declare a pointer to a record type that's suited to the memory you're
writing to, in this case the screen memory, then whenever you have to
write to memory, use the pointer as access. To give credit where credit
is due, I got the idea from O'Brien's _Turbo Pascal: The Complete
Reference._
program Write_Direct;
const
MONOSEG = $B000; {take your pick according to your monitor}
CGASEG = $B800;
type
vidmempointer = ^screenrec;
screenrec = record
SCRXY : array [1..80,1..25] of record
ch : char;
attrib : byte;
end;{array record}
end;{screenrec record}
var
screen : vidmempointer; {screen is the key to memory}
begin
new(screen); {prepare screen for use}
screen := ptr(MONOSEG,$0000); {screen now set to Mono video memory
use CGASEG for Cga memory.}
screen^.SCRXY[1,1].attrib := $70;
{ | | | |
| | | --> Reverse video attribute
| | --> attribute record in array
| --> X,Y coordinates on screen (like GOTOXY(x,y))
--> pointer to video memory
}
screen^.SCRXY[1,1].ch := 'Z'; { <--note char here, not attribute.}
end.
{ Warning: do not use DISPOSE, for it will crash the program, if not
the system.}
=:(JRWZ):=
---
* Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
*** There is a reply. See #172.
From: Charles Falconer
To: All Msg #52, 27-Jan-89 04:33pm
Subject: TP6 wishes
TP4 (and 5) are less efficient in memory use than TP3 for CPM, in
the sense that heap and/or stack overflow may occur when memory is
still available. I wish TP6 to allocate stack above the heap, and
let the two grow together again. This can be done as follows:
1. Allocate all memory. Call this portion A
2. Reduce the allocation A by an initial stack amount, say 4k
3. allocate a new segment (S) (which will take the piece left at
the top in 2) for the stack. set SS 64k below this, set
sp at 0fff0h, and record the minimum sp value allowable.
(0f000h for the 4k allotment suggested above). This part
is designed to not change addresses of in use memory later.
4. Reduce the A allocation to just cover the global data and
set DS appropriately. Now allocate a new segment H (heap)
of say 4k. Set the initial heap control pointers accordingly.
The system is now operating with code, globals, heap and stack
segments allocated, and a large space between heap and stack that
is unallocated. Nothing need be done until either a heap or
stack overflow occurs. At this point the appropriate segment
must be expanded (by say 4k again, more if needed and available),
and the heap segment may be contracted.
This mechanism is for the present DOS memory allocation strategies,
and must be different for 386 systems in real mode. The point is
that relatively small heap/stack allocations are made, and an
overflow (a rare event, thus minimum overhead) attempts to expand
the allocation. The program only fails if this secondary allocation
cannot be made.
Now, as long as the program is running, a minimum of memory is in
use. Thus execution of chained programs, or intervention by TSR's,
will find memory available, and may grab it (provided they release
it again before the main program resumes). When and if memory
overflow occurs, it will be because ALL memory has been used.
There is now no need to pre-allocate with the (*$M directive*).
The heap mechanism itself can be improved. I have code to implement
the following, in both assembly and Pascal. Heap items are always
allocated with a header, holding a pointer to the next allocation
(NIL for the last allocated), and the size allocated. For the 8086
this implies 6 bytes. All memory allocated by new is thus linked
in the order allocated (and getmem too). Any free space sections
are linked in order of memory address, with contiguous free pieces
combined. The system keeps pointers to the first and last allocated,
and to the first free block. Any pointer assignment can now be
checked for a valid heap item (with a directive to inhibit, allowing
use of pointers outside the heap). new/dispose and mark/release can
co-exist. dispose can always check for a valid pointer. These run
time checks greatly improve programming accuracy (PascalP implements
all of them, so this is not an unproven method).
For dynamic code swapping, it is possible to keep a separate list which will
not be affected by release and/or dispose, and allocate memory for code as
needed. Code segments are intrinsically relocatable, so a strategy for
releasing and/or moving code segments when the memory is required, can be
implemented. This will allow large programs to run at maximum speed.
---
* Origin: Alice's Restaurant (Opus 1:141/488)
From: Charles Falconer
To: All Msg #53, 28-Jan-89 12:05pm
Subject: PascalP - CPM
I have a complete ISO standard portable Pascal system (validated),
that runs on the HP3000, and CPM (never finished the MSDOS port).
The compiler source and manual are available for freq on 1:141/205,
Hippocampus, (203) 481-7475 9600bd. ARC files PP319SOR and PPMANUAL.
Code generators exist for Hp3000 native code, 8080 native code, and
p-code (not SCUD style). The PCD version implements virtual code
memory, and can run in small memory systems (e.g. the 41k compiler
executes in 16k or so, and can compile itself in 63k on CPM - 10000
packed lines, about 1200 distinct identifier spellings).
The native code modules require SLR systems SLRMAC (or Z80ASM) assemblers,
and SLRNK (or SLRNKPLUS). M80/L80 will not do - they truncate identifiers
and mishandle libraries.
I will release the code generator and run-time library sources to responsible
persons who will keep me informed, for CPM use, and will discuss the MSDOS
port also (Compiler/codegenerator runs, but library has insects).
A run-time system is freely available on YARU bbs (203) 785-2912, 2400 bd,
down at present), but no freq is possible. If sufficient interest appears I
will place them on Hippocampus also. Communications have also been
implemented, with runtime modules for Kaypro and Televideo. These allow BBS
implementations with machine independant coding and program chaining
The CPM versions will run full speed on MSDOS machines using V20-80
(requires a V20 cpu), with minor problems due to faulty parameter
passing in V20-80. You can also use ZSIM or Z80EMU on any machine,
with a heavy slowdown. Compilation is much slower than Turbo (about
500 lpm), but run modules are comparable speed and size to TP4, smaller
and faster than TP3. Full listings of source and code can be made.
The PCD executable files are identical for MSDOS and CPM - the only
difference is the interpreter (and the speed). This does NOT apply
to native code files. PCD is about 5x slower than native, and about
3x smaller, i.e. the compiler would be about 150-200k in native code.
Data space is limited to 64k (small model, 16 bit pointers). Code is
essentially unlimited because of code swapping in virtual memory.
Separate compilation is possible. Max memory usage is about 100k
total, code, data and interpreter.
---
* Origin: Alice's Restaurant (Opus 1:141/488)
From: Winthrop Chan
To: Randy French Msg #54, 29-Jan-89 12:27am
Subject: Hey...
How's life at Presearch? I'm stuck over at Unisys now cranking out dBase and C
code.
(and Pascal obviously!)
Win
---
* Origin: Space Sprockets ][ Bowie,Md (Opus 1:109/509)
From: Dave Hess
To: Charles Ford Msg #55, 28-Jan-89 12:26pm
Subject: I do !
I am calling all the windows Right but it looks Like this!
####################################################################
##########QUICKBBS###########FILES####################DUMB..ECT#####
I want this line on top! one line! as a window! and when I write
the bottom...It combines with the top? I want like a status line!
Dave Hess
---
* Origin: The Antenna Farm - Austin, TX (512-444-1052) (Opus 1:382/40)
From: Ross Wentworth
To: Jon Guthrie Msg #56, 27-Jan-89 07:23pm
Subject: Re: 300 BAUD
> Interesting theory. The way I see it is that most of the
> stuff
> transmitted by a BBS is garbage that most people ignore
> unless they need
> it. Menus, for example, are of no interest at all except
> for the one
When I was a regular caller (before I became a point), the vast majority of my
time was spent reading one message after another, with very little in the way
of menus and system messages. At logon, however, you do have a point.
> BTW. What does all this have to do with Pascal?
Nothing, I was responding to someone else's statement. Since it doesn't
belong here I'll slap myself on the wrist and drop the subject! Ok? :-)
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
From: Ross Wentworth
To: Dave Goggin Msg #57, 27-Jan-89 07:30pm
Subject: FUNCTION RETURN STRING?
> Unless Turbo Pascal is different than regular pascal (in
> this case) I don't see how you can return a string, from a
> function. I though you couldn't return structured
> variables from a function.
Turbo Pascal is different. This is the ONLY structure that Turbo allows you
to return as a function result. Pity, since I would prefer to use functions
in my complex number unit, i.e.
Function CADD(C1,C2 : Complex) : Complex;
Instead of:
Procedure CADD(C1,C2 : Complex;Var Complex);
One Pascal that did allow records to be returned as function results was the
now dead Marshal Pascal.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** Part of a conversation.
From: Ross Wentworth
To: Dave Hess Msg #58, 27-Jan-89 07:35pm
Subject: Help
> different one? I NEED HELP PLEASE! PLEASE PLEASE! I
> declared the top window something like
> this...WINDOW(1,1,81,1) and the bottom I think
> Window(24,1,104,1)??? What am I doing wrong?
Windows created by Turbo Pascal's WINDOW procedure only last until you create
a new one. It does not support overlapping of any kind (unless you write it
yourself). Your best bet is to download a good windows package from your
local BBS such as TechnoJock or WNDW.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** Part of a conversation.
From: Ross Wentworth
To: Jesper Wolf Msg #59, 27-Jan-89 07:46pm
Subject: Re: STYLE DEBATE #9,005
> But I have newer understood why he changed the OTHERWISE
> into an ELSE. It might have been something Kahn demanded
> from the start but i still dont know why. Does anybody
> know?
Oddly enough, Turbo Pascal for the MAC uses OTHERWISE.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** Part of a conversation.
From: Ross Wentworth
To: Bob Ransom Msg #60, 27-Jan-89 07:50pm
Subject: high water mark
Somehow your "high water mark" file got scanned into a mail packet. You might
want to look into that.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
From: Ross Wentworth
To: Lou Garner Of 507/1 Msg #61, 27-Jan-89 07:56pm
Subject: Re: C versus PASCAL
> How depressing! I thought the TP 5.0 was about the best
> it could be...and have read suggestion after suggestion
> and not a one of them was a bad idea!
No matter what Borland (or anyone else) does, there will always be room for
improvement.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** Part of a conversation.
From: Kevin Kwast @ 930/1
To: Everyone Msg #62, 28-Jan-89 10:19am
Subject: Transfer Protocols
I am using Turbo Pascal 4.0 on a PC-AT clone. I need the TP4 source
for file transfer protocols, and the format used to pass control from a
host BBS to a door..
Someone back in mgssage 149 asked for the transfer protocols, and
nobody ever answered.. does anyone know whre they are available?
--- ConfMail V4.00
# Origin: HORIZON_RBBS_(214)881-8346_&_(214)424-3831_<<HST>>_ (8:930/1)
* Origin: Network Gateway to RBBS-NET (RBBS-PC 1:10/8)
*** There is a reply. See #209.
From: Patrick Edwards
To: Mark Cheatle Msg #63, 27-Jan-89 02:43pm
Subject: pascal
> Hi,
> I am thinking about taking a class in pascal at CCFL.
> Would you
> Guys recommend it? And also what do you think the major
> advantages does
> pascal have? And how can it help me if I learn it? thanks,
>
One advantage is that it is easy to learn and should you pass you could
probaly continue depending on the way they set-up their courses or you could
move on ot C then Assembler what ever Fortran, or Cobol (business langauge).
So I personaly wpuld recommend it but there are others that would care to
differ.
--- ConfMail V4.00
* Origin: Northern Nights | Keep Kool| (1:140/48)
*** There is a reply. See #106.
From: Scott Wilson
To: Colten D. Edwards Msg #64, 24-Jan-89 08:09am
Subject: Opus user list
Hi,
> Opint102.5rc is available from the Buffer Board at 1:152/2
> and Northern Nights 1:140/48 adn more than likely many
> others....
is there a version 4 one up there in S'toon too? If so I'll reqeust it from
48. Thanx, bi,
Scott Wilson 1:140/35
--- FD 2.00
* Origin: Magic Fountain Opus, Regina Sask (306)586-2692 Merry Xmas!
(1:140/35)
*** There is a reply. See #112.
From: Colten D. Edwards
To: George Butts Msg #65, 28-Jan-89 04:19am
Subject: Async10.Arc
No it compiles cleanly under Masm 5.1 Probably he using an old version of Masm
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** Part of a conversation.
From: Greg Franklin
To: Robert Turner Msg #66, 27-Jan-89 02:36pm
Subject: Re: FINDFIRST procedure TP4
> In TP4, I can't seem to get the FINDFIRST routine to find a
> specific file on any other computer other than mine. Also, the
> EXEC procedure will not find the file to execute on anyother
> computer other than mine aswell.
Have you checked your PATH or APPEND strings? Maybe either of those
commands is letting you find and exec files that a "normal" computer
wouldn't locate.
--- Via OpXpress V1.07ß "Silver" Greg Franklin, an End User...
* Origin: The Migrants BBS Phx. Az. ░▒▓ (602) 264-2328 ▓▒░ (1:114/07)
*** This is a reply to #27.
From: Tim Geisweit
To: Reinhardt Mueller Msg #67, 29-Jan-89 07:03am
Subject: Re: goto's
RM> JO> If you're going to program in BASIC I suggest you try TRUE
RM> JO> BASIC. Its a version of BASIC by the guys who originally
RM> JO> created the language. It does not allow GOTO's and you will
RM> JO> soon find that you don't need them at all if you use it.
RM>
RM> Tim, if/when you have lots of existing programs written in
RM> BASICA/GWBASIC, you might also try QuickBASIC v4.5 by Microsoft.
RM> $99 retail, maybe $70 at discount stores. It's most compatible
RM> with interpreted BASIC.
RM>
JO refers to Joe O'leary, so why are you telling me this?
--- msged 1.94S ZTC
* Origin: CrossFire BBS Harrisburg, PA (717)564-9519 (1:150/514)
*** Part of a conversation.
From: Les Fenison
To: Moshe Boochbut Msg #68, 24-Jan-89 10:32am
Subject: Re: interrupt procedures
> It should do the trick. If it's too brief, reply and I will
> try to help
> more.
Well here is what I used;
program test;
uses dos,crt;
var a : integer;
procedure comm_stuff; interrupt;
begin
writeln('got the interrupt');
end;
begin
setintvec($c,@comm_stuff);
repeat until 1 = 0;
end.
then I made characters come in the comm port and no luck.. I used both $C and
$B and I made characters come in all 4 comm ports each time and nothing. I
experimented with different interupt vectors and got some strange results. The
book I have here is brain damaged and dosen't list neat things like interrupt
vectors. It dosen't even talk about interrupt procedures at all.
Any ideas??
Les Fenison
Yahweh's BBS
Grangeville, Idaho
8:77/7 or 1:17/55
--- ConfMail V3.31
* Origin: << Yahweh's BBS >> Grangeville, Id (208) 983-2724 300/1200/2400
(8:77/7)
From: Terry Gaudet
To: Jonathan Posner Msg #69, 26-Jan-89 12:27pm
Subject: Pascal programming books
Hi!
You should try "Borland Osborne Turbo Pacal - The Complete Reference". So far
this is the most complete one I have found. It goes for about $40 in most book
stores. If you can't find it check out Camelot Books or La Maison de
Semi-Conducteurs. The last t
Sorry. The last time i was at either of them they each had several copies.
Another good book to go with this one (not too good by itself though) is
Mastering Turbo-Pascal by Hayden Books.
Good luck.
Terry
--- Opus-CBCS 1.10.vi
* Origin: PComm #D5: 167/1 : Montreal : 514/989-9450 (1:167/1.0)
From: Terry Gaudet
To: All Msg #70, 26-Jan-89 12:35pm
Subject: Turbo Pascal 4 & 5
Hi out there. I see from the messages here that several of you have tried out
the newer versions of Pascal. Being new to programming (and somewhat ignorant)
I was wondering if I should upgrade from my ver.3.0. If so which one (4 or 5)
would you suggest
as being the better buy?
Thanks, Terry
--- Opus-CBCS 1.10.vi
* Origin: PComm #D5: 167/1 : Montreal : 514/989-9450 (1:167/1.0)
*** There is a reply. See #186.
From: David Rutkowski
To: Lee Spivey Msg #71, 27-Jan-89 05:53am
Subject: Re: pascal to `c` transposer
It's called TP2C and should be generally available on your local BBS's.
---
* Origin: WOC'n on the DarkSide...The Misadventure Continues... (Opus
1:228/5)
From: David Rutkowski
To: Jon Guthrie Msg #72, 27-Jan-89 06:00am
Subject: Re: C Versus Pascal
There's what's best, and then there's what's practical. I would prefer Pascal
over C if it were generally available for machines other than the PC. I
routinely write code on the PC and upload it to multi-user machines for
recompilation. And, with Turbo C 2.0's enhanced debugging capabilities, the
pitfalls of C programming are a bit easier to overcome. Of course, C is used
for a lot of huge programs. The discipline for organizing large programs rests
with the programmers, rather than the language.
---
* Origin: WOC'n on the DarkSide...The Misadventure Continues... (Opus
1:228/5)
*** Part of a conversation.
From: Jean-paul Louis
To: Eugene Baral Msg #73, 28-Jan-88 04:26pm
Subject: Re: Help requested
If you're using Turbo Pascal, You should try :
Procedure SoftBoot;
Inline($CD/$19);
That
should do it.
Jean-Paul
--- QuickBBS v2.03
* Origin: INFORMATION SYSTEMS BBS - (919)821-4370 (1:151/129)
From: Moshe Boochbut
To: Ben Madison Msg #74, 28-Jan-89 06:49pm
Subject: Re: Modem
Sorry, but I forgot the subject of my replieing. ccould you please be more
specifiec. if we are talking about FOSSIL, well, you will have to wait for few
days, ccause my hard-disk want down..
Moshe Boochbut
---
* Origin: ASCII -Home of TURBO PROGRAMMER- Raleigh (919)782-7752 PCP:NCRTP
(Opus 1:151/119)
*** There is a reply. See #164.
From: Ray Sun
To: All Msg #75, 28-Jan-89 06:26pm
Subject: Compatibility
I want to know why Turbo Pascal 5.0 isn't totally backward compatible with
Tp4.0 and Tp3.0....
It should be, like an EGA card having CGA support...You have to go through
that editing process or UPGRADE to change it, which doesn't actually fix
anything real. --YOU have to go back and change it.
Hmm...
--- QuickBBS v2.03
* Origin: ** The Express Line, Winterville, GA (404) 742-7736 HST **
(1:370/22)
From: Dan Wulff
To: Edward Samudro Msg #76, 24-Jan-89 07:27am
Subject: Day of the year
Hi Edward.
FUNCTION Number_Of_Days(Year,Month:INTEGER):BYTE;
BEGIN
CASE Month OF
1,3,5,7,8,10,12: Number_of_Days:=31;
4,6,9,11 : Number_of_Days:=30;
2 : IF(Year MOD 4=0) AND
((Year MOD 100<>0) OR (Year MOD 400=0)) THEN
Number_Of_Days:=29 ELSE Number_Of_Days:=28;
END;
END;
FUNCTION DayNumber(Year,Month,Day:INTEGER):INTEGER;
VAR
Days,i:INTEGER;
BEGIN
Days:=Day;
FOR i:=1 TO Month-1 DO
Days:=Days+Number_Of_Days(Year,i);
DayNumber:=Days;
END;
BEGIN (* THE MAIN PROGRAM CALL *)
WRITELN('The date',y,'-',m,'-',d,' is the day number ',DayNumber(y,m,d));
END.
Hope this will help you.
Dan
PS! Sorry about the format, but this editor does not allow much.
---
* Origin: Dragons Lair - The Role Playing Game BBS (Opus 2:231/57)
From: Fabiano Fabris
To: Joaquim Homrighausen Msg #77, 27-Jan-89 10:19am
Subject: Re: PASCAL and TAP
Hello.
-> Most of you are probably not aware (or don't care) of the
->fact that TAP (the TransAtlanticProject) is sending this
->conference along with quite a few other conferences over
->the pond every night. We started TAP as a "echomail
I didn't know anything about this! Actually, I was wondering how the Echo
Mail was getting to the States and back, but kinda supposed it went through
the zone gates somehow. I guess I should have worried about it more.
Anyway, at this point, tell me what can be done!
Fabiano Fabris, Sysop 2:333/12
--- QuickBBS v2.03
* Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
*** There is a reply. See #80.
From: Fabiano Fabris
To: Heikki Levanto Msg #78, 27-Jan-89 10:21am
Subject: Re: string+string
Just wanted to say that I admire all the effort you're putting into this
echo, like writing out routines for the benifit of all.
Hats off to you!
--- QuickBBS v2.03
* Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
From: Fabiano Fabris
To: Heikki Levanto Msg #79, 27-Jan-89 10:23am
Subject: Re: C versus PASCAL
->BTW, I told of a small bug here, you can't put an init
->section of an unit into an include file. Has that message
->disappeared, or don't you folks care ?
I saw the msg, but haven't had a chance to try it. I don't usually write
large programs, so it isn't often that I need to write Units; and even when
I do, they don't need INIT sections.
--- QuickBBS v2.03
* Origin: -=] THE LINK [=- (* Down with C! *) (2:333/12)
*** Part of a conversation.
From: Jesper Wolf
To: Joaquim Homrighausen Msg #80, 27-Jan-89 03:02pm
Subject: PASCAL and TAP
Hello Joaquim.
I think it would be a pitty if you close down Pascal and C_echo. How about
making a plea for donations. I didnt even know that you were transporting this
echo. If you were to send out a message once a month asking for donations i
think people would pay. Once you did it in interuser and as far as I know that
payed off.
I am unemployed and dont have much money, but if I can do anything to help
Pascal and C_echo to keep comming I am willing to pay. I dont even have your
postal account number (or that of Joakim) so I cant pay until i get it.
So please send us such a message and see what happens. I have been on this
echo for quite a while but have newer seen any plea for contributions.
Greetings from Denmark.
--- msged 1.943S TC (JW)
* Origin: Wolf's Point. Nærum, Denmark. (fidonet 2:230/30.10)
*** Part of a conversation.
From: Tomas Gradin
To: Ross Wentworth Msg #81, 28-Jan-89 04:32pm
Subject: TPPOP18B
What is it? And, where can I find it? ShareWare?
Best Regards,
Tomas
--- msged 1.96L TC (TG)
* Origin: Walkabout Creek (fidonet 2:501/139)
*** There is a reply. See #194.
From: Joaquim Homrighausen
To: Fabiano Fabris Msg #82, 29-Jan-89 04:37am
Subject: Re: PASCAL and TAP
> I didn't know anything about this! Actually, I was
> wondering how the Echo Mail was getting to the States
> and back, but kinda supposed it went through the zone
> gates somehow. I guess I should have worried about
> it more.
What can be done is that people start worrying about how they should get
their echomail. Most people reading echomail/groumail conferences don't give a
shit about who's footing the bill for it.
The problem is that when I (TAP/1, USA) and Joakim Hernberg (TAP/2, Europe)
ask for contributions etc. people say "oh yes, what a marvelous idea".. and
that's the end of it.
It takes regular contributions, say $5 - $10 / month / user and we should be
in good shape. Paying for something you use, usually forces a somewhat better
quality in conferences as well.
-joaquim
TAP/1 Coordinator
--- FD TosScan .17 (286)
* Origin: Home of the "Protocol Engine" (PE) (1:135/20.1)
*** Part of a conversation.
From: Joaquim Homrighausen
To: All Msg #83, 29-Jan-89 04:48am
Subject: TAP and PASCAL
The TransAtlanticProject
Echomail, Zone 1<>Zone 2
This conference is shipped to Europe every night by TAP. When TAP/1 calls
TAP/2, it'll pickup any mail waiting and distribute it in Zone 1.
I and Joakim Hernberg started the TransAtlanticProject (TAP) in the winter of
1987 and would like to continue. But without your help it won't work. We need
contributions regularly. Nothing big, $5-$10 per month or so will do.
We're by no means trying to make money out of this (it would be ridiculous to
even try), but my phone bill for TAP echomail has grown and is still growing
(we're beyond _expensive_). We also think that if the readers of this
conference contributes, it'll force a somewhat higher quality of the
conference.
To contribute, send whatever you feel this conference is worth to you to
Joaquim Homrighausen
11466-Y SW 109th RD
Miami FL 33176
Thank you.
-joaquim
TAP/1 Coordinator
--- FD TosScan .17 (286)
* Origin: Home of the "Protocol Engine" (PE) (1:135/20.1)
*** There is a reply. See #140.
From: Mark Howard
To: Steve Butler Msg #84, 29-Jan-89 02:47pm
Subject: Re: File Move Procedure
> > Would anybody know where I might be able to get a
> > procedure to move a file
> > from one directory to another directory.
>
> Look for RED.* or MV.* on most BBS around the country. I'm sure
> that 138/3 has them available. (206/845-4257)
The key word here was procedure. Tom wanted to do it withing a Pascal
program, without shelling to DOS. By the time I had contacted him, he had
already realized the the Rename procedure will do this quite nicely, as long
as the file isn't being moved to another drive.
-m
--- FD 2.00
* Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
*** This is a reply to #20.
From: Mark Howard
To: Jesper Wolf Msg #85, 29-Jan-89 02:52pm
Subject: TESSERACT
> I got hold of a version of tesseract for Turbopascal ver 4 but
> need one for Turbopascal Ver 5. Does anyone know if that one
> exists?
Call (215)884-3373. The Tesseract Development Team.
-m
--- FD 2.00
* Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
*** There is a reply. See #183.
From: Neil Sharma
To: All Msg #86, 29-Jan-89 12:17pm
Subject: tpboard 5.0
I am looking for the source to Tpboard 5.0 does anyone know where i can find
it?? thanks!!! The reason i need it is cuz i run a bbs using Tpboard (a pascal
bbs) and have been unable to find it. Thanks for any help!!
---
* Origin: Waterford Software BBS, Silver Spring, Md. (Opus 1:109/505)
*** There is a reply. See #225.
From: Rod Bartlett
To: Steve Hartmann Msg #87, 28-Jan-89 11:38am
Subject: Re: DOS Commands.
SH> > I was wondering if there was a way to call DOS internal
SH> > commands (example: copy, del, etc.) from within a program.
SH> > Also, is there a way to run another program and return
SH> > to the current one? (In essence a DOS shell). I mean without
SH>
SH> If you are using Turbo Pascal, Just use the EXEC procedure. If your
SH> are not using Turbo pascal, Look in your DOS manual .. I beleive there
SH> is a DOS function for running Child Processes.
Actually, you must be using TP version 4.0 or later to use the EXEC procedure.
As for the use of internal DOS commands, the EXEC call would look something
like the following:
EXEC('\COMMAND.COM','/C type autoexec.bat');
If you're not using Turbo Pascal 4.0 or later, you have to use DOS function
call $4B. This function is a bit too complex to cover in a message. It is
covered in some detail in a variety of books, my favorite being "Advanced
MS-DOS" by Ray Duncan.
--- msged 1.94S ZTC
* Origin: Norwegian Fjord (1:109/117.102)
From: Rod Bartlett
To: Holger Schurig Msg #88, 28-Jan-89 11:50am
Subject: Re: C versus PASCAL
HS> This is true. But the editor under 5.0 is slower then the one under 4.0
HS> (which was slower than 3.0, too). Borland has become the same illness
HS> as the rest of the pc-world: getting to big (because of using high-
HS> level-language code) and to slow (same reason). A good compiler must
HS> programmed in machine language, everything other makes him big. And a
HS> big compiler isn't usable for programs with many symbols to memorize.
HS> Viele Gruesse, Holger
One of the major reasons that TP 5.0 is larger than it's predecessors is
because they keep adding new functionality. I disliked the larger size when I
upgraded from TP 3.0 to 4.0 but soon found myself addicted to units and the
smaller program size possible. Now, version 5.0 gives us the integrated
debugger and the ability to put the editor buffer in EMS. It's a much more
powerful language than ever before and for that I'm willing to accept the
tradeoff of the larger compiler size. Besides, when TP first came out, the
average memory size was smaller and most machines didn't have hard drives.
Now that the opposite is true, why shouldn't Borland use machines to their
fullest capability?
Rod Bartlett
--- msged 1.94S ZTC
* Origin: Norwegian Fjord (1:109/117.102)
*** Part of a conversation.
From: Frank Barrus
To: Robert Turner Msg #89, 25-Jan-89 12:02pm
Subject: Re: File Existance...
Okay, I'll check it out... Hopefully the record will return
the file size properly too. I think I'll check that out
this afternoon, and update my standard I/O units for my BBS
source code.
When you say that it didn't work properly on any other computer,
do you mean the way you did it, or just the FindFirst procedure?
I can't see why it wouldn't work- it uses standard MSDOS calls,
or so I thought. What machine do you have, and what machine did
you test it on?
Well, I wish you luck, (and me luck too..) and I'll keep
you informed as to the results. (Please write back to remind
me or I might forget though..)
- Frank (oh, and no need to call me 'sir' - I'm just another
friendly Pascal programmer...)
---
* Origin: Dave's OPUS!/BINK *SDS*SDN*HST* Lowell MA (Opus 1:324/275)
*** There is a reply. See #90.
From: Frank Barrus
To: Hector Santos Msg #90, 25-Jan-89 12:08pm
Subject: Re: File Existance...
Thanks for the help. I'll try it now...
---
* Origin: Dave's OPUS!/BINK *SDS*SDN*HST* Lowell MA (Opus 1:324/275)
*** This is a reply to #89.
From: dj murdoch Of 324/1
To: Gary Doughty Msg #91, 21-Jan-89 09:07am
Subject: Quick Sort
Here's the sort unit I use. It only works in version 5, because of the
procedural types, but you should be able to modify it for other versions.
--------------- SORTS.PAS --------------
unit sorts;
interface
type
float = double;
comparison = function(a,b:pointer):boolean;
array_function = function(i:integer):float;
procedure list_sort(var start:pointer; greater:comparison);
{ Procedure to do list insertion sort on the linked list pointed to by start.
Greater points to the entry for a far function with declaration
function greater^(i,j:pointer):boolean which returns true if i^ > j^
and false otherwise.
Assumes that pointers point to pointers, i.e. links should be the first
element of records in the list.
N.B. If enough memory is available, it seems to be faster to make the list
into an array, use arr_sort, and then un_make the array when there are
more than about 100 records.
}
procedure arr_sort(var arr;size:word;greater:comparison);
{ Procedure to do a Quicksort on the array of pointers pointed to by arr.
Greater is as in list_sort. Makes no assumptions about what pointers
point to.
Based on Quicksort as given in Steal This Code, by F.D. Boswell, Watcom
1986.
}
function count_list(list:pointer):longint;
{ Counts the number of elements in the list}
function make_array(list:pointer;size:longint;var arr:pointer):boolean;
{ Attempts to make an array of pointers from the list. Returns true on
success, false if it failed because not enough memory is available. Always
creates an array with size elements, but only fills those up to the
smaller of the actual size of the list or size. }
procedure un_make_array(var list:pointer;size:integer;var arr);
{ Adjusts the pointers in the list to reflect the ordering in the array.
Doesn't check that they are all valid - be sure size reflects the
true number of pointers in the array. }
function locate(xx:array_function; n:integer; x:float):integer;
{ Given a float-valued function on the integers 1..n which is monotone
increasing or decreasing, and given a value x, returns an index j such
that x is between xx[j] and xx[j+1]. Returned values of 0 and n indicate
that x is out of range. From Numerical Recipes in C, Press et al.
Translated
to Pascal by djm }
function hunt(xx:array_function; n:integer; x:float; guess:integer):integer;
{ Given a float valued function xx on integer values 1..n, and given
a value x, returns a value j such that x is between xx(j) and xx(j+1).
xx must be monotonic, either increasing or decreasing. Values of 0 or n
are returned to signal that x is out of range. Guess on input is taken as
the initial guess for the value of hunt on output. From Press et al,
Numerical Recipes in C, translated to Pascal by djm.
}
implementation
type
list_ptr = ^list_rec;
list_rec = record
next : list_ptr;
end;
ptr_array = array[1..16380] of pointer;
procedure list_sort(var start:pointer; greater:comparison);
var
first,rest,current,next:list_ptr;
begin
rest := list_ptr(start)^.next; { Rest points to the uninserted part of
the list }
first := start; { first is a fake first entry in the new list }
first^.next := nil;
start := @first;
while rest <> nil do
begin
current := start;
next := current^.next;
while (next <> nil) and (not greater(next,rest)) do
begin
current := next;
next := current^.next;
end;
current^.next := rest;
current := rest;
rest := rest^.next;
current^.next := next;
end;
start := first;
end;
procedure arr_sort(var arr;size:word;greater:comparison);
{ Procedure to do a Quicksort on the array of pointers pointed to by arr.
Greater is as in list_sort. Makes no assumptions about what pointers
point to.
Based on Quicksort as given in Steal This Code, by F.D. Boswell, Watcom
1986.
}
var
a:ptr_array absolute arr;
procedure quick(first,last : word);
var
pivot : pointer;
temp : pointer;
scanright, scanleft : word;
begin
if (first < last) then
begin
pivot := a[first];
scanright := first;
scanleft := last;
while scanright < scanleft do
begin
if greater(a[scanright+1], pivot) then
begin
if not greater(a[scanleft], pivot) then
begin
temp := a[scanleft];
inc(scanright);
a[scanleft] := a[scanright];
a[scanright] := temp;
dec(scanleft);
end
else
dec(scanleft);
end
else
inc(scanright);
end;
temp := a[scanright];
a[scanright] := a[first];
a[first] := temp;
quick(first, scanright-1);
quick(scanright+1, last);
end;
end;
begin {arr_sort}
quick(1, size);
end;
function count_list(list:pointer):longint;
{ Counts the number of elements in a list }
var
l:list_ptr absolute list;
size:longint;
begin
size := 0;
while l <> nil do
begin
inc(size);
l := l^.next;
end;
count_list := size;
end;
function make_array(list:pointer;size:longint;var arr:pointer):boolean;
{ Attempts to make an array of pointers from the list. Returns true on
success, false if it failed because not enough memory is available }
var
l:list_ptr absolute list;
mem_needed:longint;
a:^ptr_array absolute arr;
i:integer;
begin
mem_needed := size*sizeof(pointer);
if (mem_needed > 65520) or (mem_needed > MemAvail) then
begin
make_array := false;
exit;
end;
GetMem(a,mem_needed);
i := 0;
while (i<size) and (l <> nil) do
begin
inc(i);
a^[i] := l;
l := l^.next;
end;
make_array := true;
end;
procedure un_make_array(var list:pointer;size:integer;var arr);
{ Adjusts the pointers in the list to reflect the ordering in the array.
Doesn't check that they are all valid - be sure size reflects the
true number of pointers in the array. }
var
l:list_ptr absolute list;
current,next:list_ptr;
a:ptr_array absolute arr;
i:integer;
begin
l := a[1];
current := l;
for i := 2 to size do
begin
next := a[i];
current^.next := next;
current := next;
end;
current^.next := nil;
end;
function locate(xx:array_function; n:integer; x:float):integer;
{ Given a float-valued function on the integers 1..n which is monotone
increasing or decreasing, and given a value x, returns an index j such
that x is between xx[j] and xx[j+1]. Returned values of 0 and n indicate
that x is out of range. From Numerical Recipes in C, Press et al.
Translated
to Pascal by djm }
var
ascnd : boolean;
ju,jm,jl : integer;
begin
jl := 0; { initialize lower }
ju := n+1; { initialize upper }
ascnd := xx(n) > xx(1);
while (ju-jl > 1) do
begin
jm := (ju+jl) shr 1;
if ((x > xx(jm)) = ascnd) then
jl := jm
else
ju := jm;
end;
locate := jl;
end;
function hunt(xx:array_function; n:integer; x:float; guess:integer):integer;
{ Given a float valued function xx on integer values 1..n, and given
a value x, returns a value j such that x is between xx(j) and xx(j+1).
xx must be monotonic, either increasing or decreasing. Values of 0 or n
are returned to signal that x is out of range. Guess on input is taken as
the initial guess for the value of hunt on output. From Press et al,
Numerical Recipes in C, translated to Pascal by djm.
}
var
jlo,jm,jhi,incr :integer;
ascnd : boolean;
label
break1,break2;
begin
ascnd := (xx(n) > xx(1));
if (guess <= 0) or (guess >= n) then
begin
jlo := 0; { Input guess not useful. }
jhi := n+1;
end
else
begin
jlo := guess;
incr := 1;
if (x >= xx(jlo)) = ascnd then { hunt up }
begin
if (jlo = n) then
begin
hunt := jlo;
exit;
--- ConfMail V4.00
* Origin: Shakers BBs ... -=-{ SDS,SDN NET 324 }-=- (1:324/170)
*** Part of a conversation.
From: Anne Wilson
To: All Msg #92, 29-Jan-89 01:01pm
Subject: Check Printer Status
Can anyone help me find some code that will check to see if printer is ready,
& if not let my program recover from the error. I have looked in numerous
books, but the code I've found is different in all & none of it works.
Thanks, Anne.
---
* Origin: SoundingBoard 713-821-4148 Houston `Just Say NOpus' (Opus 1:106/12)
*** There is a reply. See #94.
From: Chris Cavers
To: All Msg #93, 29-Jan-89 02:51pm
Subject: 3 points
Someone mentioned a statement like:
IF (boolean expression) THEN ;
This should work because the definition of the Pascal language
accepts NULL statements as OK.
That is why the following code will work
IF (true) THEN
BEGIN
END;
Also, someone asked about the printer status.
use the interrupt function to call the dos interrupt that reads the printer
status...it will tell you if the printer is on/ofline out of paper and other
things...ask someone that has a programmer's reference for dos about the
printer interrupt....if not, leave me mail and i'll get you the info.
To our friends in Europe,
I have heard that Modula-2 is very popular over there.
Can anyone confirm this?
C
--- TAGMAIL v0.22.02 Beta
* Origin: My Private Hell -- Houston,Tx (713)980-4824 (1:106/666.0)
From: Rich Myers
To: Anne Wilson Msg #94, 29-Jan-89 05:02pm
Subject: Re: Check Printer Status
AW>Can anyone help me find some code that will check to see if printer
AW>is ready, & if not let my program recover from the error. I have
AW>looked in numerous books, but the code I've found is different
AW>in all & none of it works. Thanks, Anne.
AW>
This function came out of some code I had laying around. I did not write it
nor do I know who did. It works for me on most printers and I hope it will
work for you.
function printer_ready :boolean; var Recpack : registers; begin
with recpack do
begin
ah := 2;
dx := 0;
intr($17,recpack);
if ah = 144 then
printer_ready := true
else
printer_ready := false;
end;
end;
Rich
---
* Origin: The Twilight Zone (Opus 1:106/301)
*** This is a reply to #92.
From: Dave Goggin
To: Jon Guthrie Msg #95, 29-Jan-89 12:45pm
Subject: Re: COMMENT BRACKETS
WELL, that you ask, the term program is the gulity one. basically my
machine doen't have curly brackets, but the term program redefined the
character set to give one, but left the other one there as the clearscreen. I
think its stupid too.
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
From: Dave Goggin
To: Dj Murdoch Msg #96, 29-Jan-89 12:58pm
Subject: Re: NEXT TP VERSION
did you send mine too?
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
*** There is a reply. See #205.
From: Dave Goggin
To: Doug Lewis Msg #97, 29-Jan-89 01:05pm
Subject: Re: YEAR 2000
I believe that although 2000 is a leap year, it doesn't have the leapday added
because 2000 MOD 400 = 0.
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
*** There is a reply. See #158.
From: Tony Hsieh
To: Mike Janke Msg #98, 29-Jan-89 07:38pm
Subject: Re: HELP ON THE WAY
The statement
IF READKEY=#0 then ;
means that it's going to call the function READKEY, but not do anything. It's
just as if READKEY was a procedure; but since it isn't, you have to do
something like If readkey=#0 then;
the reason for the semi-colon immediately after the then is so that it'll mean
"do nothing."
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
*** Part of a conversation.
From: Robert Bequette
To: Mike Janke Msg #99, 30-Jan-89 01:19pm
Subject: Re: Help On The Way
Sure thing. The "THEN ;" just tells it to execute a null instruction
(nothing) if the condition is TRUE.
---
* Origin: NightLine-1/HST, Mather AFB Ca, (916)362-0715 <HST:362-1755> (Opus
1:203/39)
*** Part of a conversation.
From: Phil Barnes
To: All Msg #100, 30-Jan-89 04:45pm
Subject: Conversion Utilities
Can someone tell me where I can get a set of coversion utilities?
(eg, C to PASCAL, BASIC to PASCAL, ASM to PASCAL)
Thanks in advance,
Phil..
--- FD 2.00
* Origin: The Fortress! Running Turbo(Pascal) Quick(BBS) - (1:286/704)
From: Dave Goggin
To: Joaquim Homrighausen Msg #101, 30-Jan-89 01:53pm
Subject: Re: PASCAL AND TAP
i donated a big amount just today to help out. this is a great service.
--- TBBS v2.0
* Origin: G.A.D.M. Multi-User TBBS Hayward,CA.(415) 581-3019 (161/208)
*** This is a reply to #82.
From: Rolf Thomassen
To: Tom Freedy Msg #102, 26-Jan-89 10:26am
Subject: Help
> Hello all, i just got a Turbo Pascal file from the States, and i want to
> change it to run in Turbo 5. The problem is this
> Sum :Byte Absolute Cseg:$0080;
> that is my problem, can anybody tell me how to change it?
You just change it to:
Sum : BYTE absolute PreFix:$0080;
* RT *
--- ConfMail V3.31
* Origin: Thunderbolt CBCS, Denmark [+45-2-951323 #CM] (2:231/60)
*** Part of a conversation.
From: Wesley Williams
To: Andy Lester Msg #103, 29-Jan-88 06:32pm
Subject: Re: Accessing clock
-> stop" procedures in Pascal. The exception that I can think
-> of is Turbo's Sound() procedure.
Yes, and it can be annoting at times also!
Thanks,
WW]I[
--- QuickBBS v2.03
* Origin: Down in Music City, Pascal Lives (1:116/31)
From: Soloman Blue
To: Ross Wentworth Msg #104, 29-Jan-89 08:39pm
Subject: Re: Pascal Sucks
Ross--
The message regarding Howard Jiang and his views toward Pascal:
> IReally Think Pascal Sucks !!!!! Sucks So Bad That I Cant
> Even get a > Taste!!!!!! You Pascal Programers Bit The Big One!!!!!!
> If You Have any Comments to me call Me at
> 602-297-6490
This is obviously an immature act perpetrated by children. Also it is a
'hack' of sorts. Someone got a hold of Mr. Jiang's password and proceeded to
spread the word, so to speak. I don't think Howard gets to these parts so
that's why I am acting in his defense.
Soloman Blue
--- QuickBBS v2.03
* Origin: The Hour Glass SDNet/Works! Region 15 SDNRC (1:300/12)
*** Part of a conversation.
From: Syd Kahn
To: All Msg #105, 08-Feb-89 05:48am
Subject: Printing Graphics
I have seen all these toolboxes, both Shareware and Pay, but as of yet have
not seen any that support printing a graphics screen.
Could some kind soul please provide:
1) Name of a tollbox that prints graphics.
-or-
2) A Pascal book that has routine primitives.
It neither of these exist, maybe someone can point me to
articles/books that outline the various screen structures, and I'll have to
home brew some.
Be sure that when I am finished, I'll share it with everyone
here. It would be the least I could do for all the usefull code fragments
that makes my life so much easier.
Sincerly
Syd Kahn
---
* Origin: Komputer Klassified, WOCing in the City at night (Opus 1:102/731)
*** There is a reply. See #196.
From: Brian Matlock
To: All Msg #106, 30-Jan-88 08:57pm
Subject: PASCAL
Any PASCAL Programmers out there?
--- QuickBBS v2.03
* Origin: WriteLn('I`ve got Pascal's Elbow!'); Connect 2400! (1:130/39)
*** Part of a conversation.
From: Ben Madison
To: Joseph Dejesus Msg #107, 29-Jan-89 03:41pm
Subject: BBS
I hate to say it but I haven't the foggiest notion as to where to get it, but
I do know that WWIV BBS is written in Pascal, and that there is a version
floating around which has been converted to TP5.0.
TPBoard is also written in TP, but I think that there are several other
commercial units required to compile it, and again I don't know where to get
the source. (I have left a message concerning the source to the SysOp of The
Pass TPBoard, but so far have received no reply... we talked in late '88 and
he said that they were about to quit releasing source, so they might have
already - hope not!)
If you find anything out then please post it, as I would be very interested in
hearing it...
jbm
--- Opus-CBCS 1.10.vi
* Origin: Crystal Palace The Ghost in the Machine (1:382/1.0)
*** There is a reply. See #132.
From: Ben Madison
To: George Butts Msg #108, 29-Jan-89 03:53pm
Subject: Async10.Arc
I have ASYNC10 running no problem - it was simply a matter of assembling
async10.asm into async10.obj with TASM (no command line params but the file
name) and changing the ASYNC10.PAS file to link ASYNC10.OBJ instead of
C:\ASM\ASYNC10.OBJ (in other words, get rid of the path...)
If people need the .OBJ file, I suppose it would be legal to post if for
download, wouldn't it? If I don't hear any objections in the next week or so
then I will post ASYNC10.OBJ in the Pascal area of the MeisterBoard, at
(512)/476-4770...
jbm
--- Opus-CBCS 1.10.vi
* Origin: Crystal Palace The Ghost in the Machine (1:382/1.0)
*** This is a reply to #65.
From: Rolan Yang
To: All Msg #109, 29-Jan-89 12:38am
Subject: VIRUS
I previously read a message about someone trying to write a virus
in pascal. Well, my computer class is the most boring in the world
and in between assignments I've been working on one. I have a working
copy (I think I'll upload it sometime). It's pretty cheap and useless.
At first it pretends to erase everything from your disk except
command.com and 2 other files which if you TYPE will give you some
small message. Then after 10 times of unsuccessfully doing anything,
all your files come back on to the disk BUT you cant run anything.
then after another 10 times of not doing anything, All traces of the
virus dissapear and it ends with a small warning about being aware
of viruses and their destructivness.
Does anyone know how I can get a directory into a TXT file from a
pascal program??
In dos it's DIR >CAT.TXT
CAT.TXT begin the file which would contain the directory.
-The Alligator
--- QuickBBS v2.03
* Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
*** There is a reply. See #175.
From: Mike Hinds
To: Fabiano Fabris Msg #110, 28-Jan-89 01:02pm
Subject: Quotes
FF> I know this has nothing to do with this echo, but the curiosity is
FF> killing
FF> me. How do you do this:
FF> ->In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13)
FF> writes:
FF> when you quote a message - by hand, or is it a feature of the editor?
This is an option in MSGED v. 1.96, which wasn't written in Pascal, BTW.
--- msged 1.96L MSC
* Origin: /\/\ Turbo NorthWest \-\ Everett, Washington (1:343/27.2)
From: Reinhardt Mueller
To: Dave Hess Msg #111, 26-Jan-89 06:03am
Subject: Re: Help
-> I am trying to fiddle around with windows in Turbo Pascal.
-> I NEED HELP PLEASE! PLEASE PLEASE! I declared the top window
-> something like this... WINDOW(1,1,81,1) and the bottom I think
-> Window(24,1,104,1)??? What am I doing wrong?
The values you're passing to the WINDOW procedure are out of range.
<<spoken calmly>>
Dave, for starters, have you ever thought about curling up with a
good book, like your Turbo Pascal manual(s)? I'll point you
in the right direction for the answer to your question about the
WINDOW procedure. I'm assuming that you have the manual(s) for
your particular version of Turbo Pascal on hand.
Look on page 168 of the TP v3.0 reference manual.
Look on pages 302-308, 498-499 of the TP v4.0 reference manual.
If you have v5.0, you'll have two manuals.
Look on page 218 of the TP v5.0 user's guide.
Look on pages 135-142, 414-415 of the TP v5.0 reference guide.
Go ahead and read it/them -- cover to cover. You have only your
ignorance to lose! If you don't understand something, READ THE
MANUAL FIRST! If you don't understand the manual, THEN post a
message.
Remember, if you check the manual first, you'll most likely get
the help you so desperately seek instantly, and you won't have to
wait up to a week for a reply! Now doesn't that advice make you
feel happy?
--- Via OpXpress V1.02 Always a notch off....just like the Madman!
* Origin: LSO II * Everett WA * 206/334-7039 * HST (1:344/100.0)
*** Part of a conversation.
From: Colten D. Edwards
To: Scott Wilson Msg #112, 28-Jan-89 12:38pm
Subject: Opus user list
Yes version 4 is avaliable as OPINT102.ARC I believe. You'll also want
OP102-1.ARC to go with it. Might also want to request FILES as well...
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** This is a reply to #64.
From: Colten D. Edwards
To: Gilbert Edwards Msg #113, 29-Jan-89 03:17am
Subject: Help With the (getdir or chgdir) command
Did you set the length of the string at all. Since it's an asciiz string to
start with there wouldn't be a length byte.
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** There is a reply. See #120.
From: Parker Jordan
To: All Msg #114, 29-Jan-89 07:45pm
Subject: READ_KBD
HELP....!!! I'M TRYING TO USE TECHNOJOCK TOOLSKIT READ_KBD TO RETURN CONTROL
CHARACTERS OF PFKEYS IN A REPEAT LOOP, THEN ON CASE OF KEY GO TO A SEPARTE
PROCEDURE TO OPEN A FILE AND READ IN IN...THIS WORKS ON THE FIRST READ, BUT
WHEN TRYING TO CALL PROCEDURE SECOND TIME IT IGNORES THE READ INSTRUCTION...
I.E. REPEAT
READ_KBD(INCHR,INCTL);
CASE INCTL OF
F1_KEY : BEGIN
READ_PROC;
END;
END; {CASE}
UNTIL INCHR = ESC
PROCEDURE READ_PROC;
VAR FILE_ID : STRING[15];
FILE : FILE OF WHATEVER;
BEGIN
READ(FILE_ID);
THIS READ IS THE PLACE IT SKIPS....
ASSIGN(FILE,FILE_ID) AND SO FORTH........
FOR ANY TYPES OTHER THAN INTEGER READS, IT WILL ONLY WORK ONE TIME. IT
SEEMS TO BE A PROBLEM WITH READ_KBD FOLLOWED BY ANY CALL TO A PROCEDURE THAT
DOES A STANDARD READ... I WORKED AROUND IT BY USING THE TECHNO
READ_LINE BUT AM CONFUSED WHY THE STANDARD READ DID NOT WORK... IF
ANYONE WOULD LIKE TO SEE THE SOURCE OTHER THAN WHAT WAS DESCRIBED ABOVE I
WOULD BE HAPPY TO PUT IT OUT FOR YOU. ANY IDEAS ????
THANKS,
PARKER JORDAN...
--- ConfMail V4.00
* Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
*** There is a reply. See #152.
From: Parker Jordan
To: Ron Dexter Msg #115, 29-Jan-89 08:02pm
Subject: Re: Memory Reading/Writing
RON, I DONT KNOW ABOUT 3.0 BUT FOR 4.0 YOU CAN MAP YOUR VARIABLES TO
SCREEN MEMORY VIA ABSOLUTE $B800 FOR COLOR AND $B000 FOR MONO...
ALSO THERE IS AN ASSIGNCRT FUNTION THAT WILL MAP TEXT TO THE SCREEN.
THERE ARE SOME GREAT TOOLS IN TURBO TECHNOJOCK TOOLKIT FOR WINDOW
AND SCREEN I/O... THEY HAVE SOME ASSEMBLER ROUTINES TO DO THIS.
A GREAT BOOK FOR 4.0 IS BORLAND'S USING TURBO PASCAL 4.0...THE
ASSEMBLER ROUTINES IN THE TOOLKIT SHOULD WORK FOR 3.0 IF YOU LINK THEM
IN WITH YOUR PROGRAM... IF YOU WOULD LIKE ANYMORE ABOUT 4.0 JUST YELL
PARKER JORDAN
--- ConfMail V4.00
* Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
From: Parker Jordan
To: Jon Rupert Msg #116, 29-Jan-89 08:17pm
Subject: Re: ANSI UNIT
JON,
DID YOU EVER FIND SUCH A UNIT ??? I USE PC EMULATION TO TALK WITH
DEC PDP AND VAX AND WOULD LIKE TO TAKE ADVANTAGE OF THE ANSI TERMINAL
CHARACTERS AND POSSIBLY GRAPHICS MODES TYPE OF FILES...
THANKS,
PARKER JORDAN
--- ConfMail V4.00
* Origin: KIC-BBS, from the heart of Cincinnati, Oh. (HST) (1:108/89)
*** There is a reply. See #145.
From: Andy Lester
To: Torben Paving Msg #117, 29-Jan-89 02:45pm
Subject: Turbo DataBase Toolbox
TP> Just a word of warning. I did that myself, but experienced a hangup in
TP> one of the database modules. I used several hours debugging with
TP> Periscope before I found the error. It was a for loop, which was
TP> terminated by altering the termination value INSIDE the for loop. This
TP> worked fine in TP3, but not in TP4 and TP5 (ref. TP4 Manual pg. 261 and
TP> TP5 Manual pg. 79). So watch out.
You mean a Borland-written toolbox had that kind of code in it? Yeesh,
doesn't make me trust them very much. That's amazingly bad practice on their
part, and it makes me wonder if they do that elsewhere.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #221.
From: Andy Lester
To: Holger Schurig Msg #118, 29-Jan-89 02:48pm
Subject: USES style
CF> Poor mans equivalent of "FROM module IMPORT ..."
HS> I have never understand the need this FROM module IMPORT <long list of
HS> everything i want to use> in Modula. One reason might be too simplify
HS> the compiler. But a good compiler should work for me, not i for him !
I think it's mostly to allow the programmer to explicitly say which code he
wants imported from the units that he's using. If, for example, you're using
unit CRT, but you're only using KeyPressed, you don't want the rest of the
code that's in CRT sucked in as well, do you?
The thing is that most of the new compilers don't have this problem, and that
they can suck in only the code needed, so that feature of Modula-2 has fallen
by the wayside.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** Part of a conversation.
From: Andy Lester
To: Holger Schurig Msg #119, 29-Jan-89 06:05pm
Subject: Re: GOTOs
HS> Why not try this:
HS>
HS> {$B+} { boolean evaluation must be set to short-circuit for this ! }
HS> REPEAT
HS> IF NOT (part1 AND part2 AND part3) THEN <other code>
HS> UNTIL done;
Hmm, slick trick, Holger, but can you be assured that Turbo evaluates boolean
expressions left to right? I had a problem with that when converting Apple
Pascal to Turbo. I had the following in Apple Pascal:
function at(x,y:integer):char;
{stuff to place the cursor, and return a null}
begin
GotoXY(x,y); {This isn't exactly how it is, but this is the Turbo equiv}
at:=#0;
end;
write(at(00,00),'Program name & stuff',
at(00,02),'This is this and blah blah',
at(00,05),'This is more stuff');
Stuff like that. We use that structure all the time. Apple goes from left to
right (and top to bottom), so it would call At(00,00), which would position
the cursor, and then print the string, and then call At(00,02), and so on.
This would all us to cram a screen into one easy to read write statement.
It doesn't work in Turbo Pascal. Apparently, Turbo calls the At() functions
first, and then passes everything to the write() procedure. Therefore, all
the cursor positions are executed at once, so only the last one "has any
effect", if you will.
We had to rewrite all of those as:
write(at(00,00),'Program name & stuff');
write(at(00,02),'This is more stuff');
etc.
to insure that we had the correct cursor positioning.
So I digress. Back to the original point. If you have
if not(part1 and part2 and part3) then...
can you be assured that part1 is called, and then part2 and then part3? Most
compilers like to generate code and variables in a LIFO (last in, first out)
stack. Maybe part3 will be called first...
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** Part of a conversation.
From: Andy Lester
To: Gilbert Edwards Msg #120, 29-Jan-89 08:03pm
Subject: Help With the (getdir or chgdir) command
GE> I have created a program that read the system#.bbs on Opus board.
GE> What I need is a way to change directories when I read the system
GE> files. I have a string call path-to_files which I have taken all the
GE> null characters off.
So what's wrong? What's the problem?
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #113.
From: Andy Lester
To: Fabiano Fabris Msg #121, 29-Jan-89 06:14pm
Subject: Re: Files
FF> How do you do this:
FF> In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13) writes:
FF>
FF> when you quote a message - by hand, or is it a feature of the editor?
I run a point system. I'm point #2 off of 115/790. I poll my boss node and
get all my messages in ARChived format and then read them off-line using this
snazzy editor called MsgEd that allows message quoting (like the FF>s at the
left of your words).
If you read a lot of echos and spend a lot of time online and have a hard
drive, setting up as a point can save you lots of time.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #201.
From: Andy Lester
To: Heikki Levanto Msg #122, 29-Jan-89 06:23pm
Subject: Stack
HL> How does Turbo's stack structure work ?
What you're asking really doesn't have anything to do with the internal stack
structure. It has to do with the variable's scope (what procs can see which
it) and lifetime (when it is allocated on the stack, and when it disappears).
It's the same for all Pascals.
HL> That may be too complicated, let me draw the whole thing out:
It was. I'm glad you did. :-)
HL> Procedure Outer ;
HL> Var OuterVar : integer ;
This is "visible" to every procedure in Outer, regardless of how many times
ProcA or ProcB is called. It's unaffected by any of the shenanigans with A &
B.
HL> Procedure ProcA ; { of Outer }
HL> begin
HL> writeln ( OuterVar );
HL> end ; { ProcA }
HL>
HL> Procedure ProcB ; { of Outer }
HL> var Bvar ;
This is visible to ProcB and Inner, but not ProcA. If ProcB is called
multiple times, then a "new" Bvar is allocated each time.
HL> Procedure Inner ; { of B of Outer }
HL> begin
HL> ProcA ;
HL> end ; { Inner }
HL> begin
HL> end ; { ProcB }
HL>
HL> begin { Outer itself }
HL> OuterVar := 1 ;
HL> ProcA ;
HL> Outervar := 2 ;
HL> ProcA ;
HL> end ; { Outer }
I hope this helps. Locally declared variables can be a real headache,
especially if you ARE talking about recursive procs.
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
From: Andy Lester
To: Dave Goggin Msg #123, 29-Jan-89 06:35pm
Subject: FUNCTION RETURN STRING?
DG> Unless Turbo Pascal is different than regular pascal (in this case) I
It is.
DG> don't see how you can return a string, from a function. I though you
DG> couldn't return structured variables from a function.
Turbo allows returning strings but not records. The following runs just fine:
program foo;
function upstring(strg:string):string;
var
i : integer;
begin
for i:=1 to length(strg) do
strg[i]:=upcase(strg[i]);
upstring:=strg;
end;
begin
writeln(upstring('Now is the time...'));
end.
However, the test program that I wrote that tried to return a record didn't.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #57.
From: Andy Lester
To: Reinhardt Mueller Msg #124, 29-Jan-89 06:38pm
Subject: Re: Apple Pascal 1.3 CLOSE problems
RM> ->reset(fl,filename);
RM> ->for i:=1 to 10 do
RM> -> begin
RM> -> pack_record(fl^);
RM> -> put(fl);
RM> -> end;
RM> ->close(fl);
RM> I'm assuming that Apple Pascal is still running under the p-System.
It is.
RM> Andy, I don't see any {$I-} directives in that code fragment and
RM> you're not getting dumped into the p-system command mode, so that
RM> tells me that your I/O checking is turned off. Your program is
RM> not reporting the errors to you. You have to test IORESULT to see
RM> if the last IO operation was successful.
Yes, {$I-} is in force. We check IORESULT ourselves rather than having Apple
Pascal crash. Admittedly, I neglected to show the procedure call to our IORES
routine which checks IORESULT and sets a string and flag. The problem is that
Pascal isn't returning the error, not that we're not checking for it.
RM> Test the variable (or
RM> print it out), not IORESULT! Any access of the IORESULT
RM> immediately sets it to zero. Use it only once per IO operation.
Yeah, that IS a fun bug quirk of it, isn't it?
Well, after a little more research after the last week or two, I've concluded
the following:
Calling close does two things. First, it writes the file's 1-block buffer to
disk. Then it updates the directory. However, if I have the drive door open
for the buffer write, the drive chatters, and probably fails internally, and
then it goes on it's merry way to the directory update. Now, if I close the
drive door at this point, it can update the directory succesfully and it
returns an IORESULT of 0. Neat trick, eh?
Admittedly, I don't have a debugger to step through it (I don't think one
exists for Apple Pascal, and if it does, somebody please tell me about it),
but it seems the only possible way.
The other thing that we discovered is that it IS necessary to check IORESULT
after a SEEK operation. We used to think that a SEEK would only set Pascal's
internal memory file pointer. Wrongo. If the SEEK points to a record that
lies in a different block on the disk than what's in the buffer, it writes out
the current block. If that fails, it can return an IORESULT <>0.
This last week has been raaaather enlightening... :-)
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #246.
From: Andy Lester
To: Charles Falconer Msg #125, 29-Jan-89 08:07pm
Subject: Various Pascal Implementations
CF> Soapbox on
What? Soapboxing here? Oh no! :-)
CF> The program header line is not a frill, but specifies what files are
CF> external to the program. Files declared that are NOT listed in the
CF> header should be purely internal, thus temporary, and go away at
CF> program exit (unless the temporaryness is specifically overridded, e.g.
CF> with an assign statement, or equivalent).
Yes, they are a frill. They're ignored by Turbo. I'm just not sure what you
mean when you say "internal" and "external" when referring to files. What if
you have a recursive procedure that opens f1? For instance:
procedure list_file(f1 : text);
begin
{ read read read }
if IncludeAFile then
begin
assign...
list_file(f1);
end;
end;
just as an example, if you're listing $I files. I wrote a program called
PList that pretty-printed Turbo output (added line numbers and ran a variable
cross-ref) and it was necessary to handle $I files like that.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #227.
From: Andy Lester
To: Scott Hudnall Msg #126, 29-Jan-89 08:12pm
Subject: Decompiling
SH> How do you get a program that has been compiled to disk into an .EXE
SH> program....decompiled back into a .PAS type format???
You can't. It doesn't work that way.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #222.
From: Andy Lester
To: Morten Nielsen Msg #127, 29-Jan-89 08:12pm
Subject: Re: Pascal Programming BBS
MN> > users (mostly cute young office girls :-). It's a buzz
MN> > Nope. I set my own.
MN> > Deadlines? What are those? I think I've had maybe 3 deadlines
MN> > in 3 years.
MN>
MN> Can I get a job?? 8-)
Well, I don't mind, but 1) You'd be low man on the totem pole and would get
to do fun things like handling tech support phone calls, and 2) I think it'd
be a hell of a commute for you.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
From: Andy Lester
To: All Msg #128, 29-Jan-89 08:15pm
Subject: :-
JW> Well its a smiling face,
blah blah blah... please, can we can the explanations of smileys?
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #32.
From: Andy Lester
To: Paul Lindquist Msg #129, 29-Jan-89 08:18pm
Subject: WILDCARDS
PL> IE I want to process all .TXT files, I would type filter *.txt. How
PL> could i get this to list out file1.txt, file2.txt, file3.txt, etc.
Roughly, what you want to do follows. I haven't looked up the syntax in the
manual, but the algorithm should be:
var
filespec : string;
srec : SearchRec {from DOS}
procedure ListFile(file : string);
{ a procedure to list the file, which is something else... :-) }
...
begin
filespec:='*.txt';
findfirst(filespec,(AnyFile-Directory-Hidden),srec);
while DosError=0 do {if it found a file matching }
begin
ListFile(srec.filename);
FindNext(srec);
end;
end.
This way, you search through the directory for files matching the mask and
then list them out. Check the manual on FindFirst and FindNext. They're
very clear. Even >I< figured it out!
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #17.
From: Andy Lester
To: Reinhardt Mueller Msg #130, 29-Jan-89 08:27pm
Subject: Re: A Little Problem
RM> First of all, your screen coordinates in the turbo start at 1. In
RM> p-System they start at 0. You have one more screen line to play
RM> with on the IBM.
We know, and it's an annoyance, but not a real problem.
RM> You have the names of the screen-handling
RM> procedures to deal with too. If your program uses the Apple's
RM> arrow keys you'll have to account for that too. Your users won't
RM> appreciate having to use Ctrl key combinations! <<grin>>
All of our input is done thru a handful of standard procedures: GetChar,
GetNum, WaitForCR, YesNo. That's it. Since we have those converted,
keyboard I/O isn't a problem.
RM> Are you using the SCAN function in the Apple version? Turbo
RM> Pascal doesn't (and has never had it, but could use) the SCAN
RM> function. Be prepared to write a/some little assembly language
RM> routine(s) to emulate it. That's what I'm thinking of doing now.
I remember that we had a problem with it, but that we got over it. Most of
the conversion stuff was done about 6 months ago. They took the very Q&D
approach to it, namely changing everything in the programs we ported over,
but not writing a compatibility unit. If we really do start doing parallel
development, we'll need it.
RM> Are you directly comparing two records of the same type with =?
RM> That's illegal in Turbo. You'll have to compare each field
RM> separately in Turbo or use a trick mentioned somewhere in the
RM> Turbo manual. If those records you want to compare contain
RM> variant fields, you won't be able to reliably use the trick.
Hell, I'm having that problem in SCUD! :-)
RM> TYPE
RM> S = PACKED RECORD
RM> first_field : 0..1;
RM> second_field : 0..7;
RM> third_field : 0..3;
RM> fourth_field : 0..255;
RM> END;
RM>
RM> If you have stuff like the above, it will take up 4 bytes in
RM> Turbo but only 2 bytes in UCSD Pascal. Remember that if/when
RM> using free unions to test bits from wierd stuff coming in from
RM> and going to the hardware.
Yeah, we know about that, too. Fun stuff, eh?
I've mentioned this a few months ago, but these are equivalent:
UCSD:
var
flags : packed array[0..7] of boolean;
Turbo
var
flags : set of [0..7];
In memory, I don't care what the internal representation is, but on disk it
can cause problems.
Always nice to see someone who understands where I'm coming from, though.
I'd really like to write a UCSD-Turbo compatibility unit, but management
isn't really keen on the PCs yet, so it's on the back burner....
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** Part of a conversation.
From: Andy Lester
To: Kevin Lowey Msg #131, 29-Jan-89 08:32pm
Subject: Re: RE:tug O'wards Iv
KL> However, Borland has stopped doing this, so now no one knows about TUG.
KL> For all you TUG members out there, please spread the word. For all
KL> the people that are NOT TUG members, I'll try and find their address
KL> and subscription form at home and will post another message with it.
I was a TUGger when they first started out. I have about 20 issues of TUG
lines somewhere, starting at issue #2. I loved it dearly; indeed, I had a
letter published back then.
However, now it, like Computer Language, has become mostly fluff and
beginners articles and lots of reviews of PC development tools.
That's why I miss Turbo Technix so much. Yes, it had the beginners stuff,
but the hardcore stuff was fantastic.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #26.
From: Paul Lindquist
To: Joseph Dejesus Msg #132, 29-Jan-89 08:28pm
Subject: Re: BBS
TP Board version 5.0 is the latest BBS written in Turbo Pascal. Source Code
is available for the board.
Paul Lindquist
--- TBBS v2.0
* Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
*** Part of a conversation.
From: Matt Franckiewicz
To: All Msg #133, 26-Jan-89 02:54pm
Subject: Xasp & Yasp
When I call Xasp and Yasp, I get 8333 and 10000 {respectively. I don't
understand why I get these numbers rather than 6250 and 10000, i.e. the same
ratio as 200 is to 320 (in cga mode).
---
* Origin: THE SMORGAS-BOARD Monroeville, PA 1-412-733-3010 (Opus 1:129/32)
From: Matt Franckiewicz
To: All Msg #134, 26-Jan-89 02:57pm
Subject: Getpalettesize
If I write {the following code:
Driver := 1; {cga} Mo := 2; {cga 320 x 200}
Initgraph (driver, mo, '');
Write (getpalettesize);
I get output of 1. Why don{'t I get 3 since there are 3, or 4, depending on
whether th{e background counts?
---
* Origin: THE SMORGAS-BOARD Monroeville, PA 1-412-733-3010 (Opus 1:129/32)
From: Matt Franckiewicz
To: Roland Brown Msg #135, 28-Jan-89 12:34pm
Subject: Re: Keep command, Cntrl-C
> > When a TP program begins, it grabs a lot of interrupts.
> > The old vectors are store{d in varaibles with names
> like
{ > SaveInt24 {hex}. Could you use SetIntVec{tor with whatever
> > number the ctrl c inte{rrupt is, to reset the vector
>
> If memory serves those variables are global and you should
> be able to reset the interrupt to the original setting
> by using those variables. I think there is even an example
> of how to do that in the manual(s) but I don't remember
> where.
If you are sa{ying that by doing something like
SaveInt24 := @YourNewInterrupt;
you can change what the interrupt does, I think you are mistaken. As I
understand it, all that SaveInt24 (and similar variables) does, is to save the
original DOS address for the interrupt, since Turbo uses its own interrupt
procedure. Then on exiting, the Turbo program resets the interrpts to the
original DOS ones (in SaveInt24, etc) so that Lotus, Wordstar or whatever get
the interrupts they expect. So changing SaveInt24 would not affect how the
interrupt worked while your Turbo program was running, but would change how
the ingterrupt worked after your program finished.
{
Incidentally, I've been saying DOS, but I should have said {BIOS interrupts.
---
* Origin: THE SMORGAS-BOARD Monroeville, PA 1-412-733-3010 (Opus 1:129/32)
*** There is a reply. See #151.
From: Matt Franckiewicz
To: Tom Bocchino Msg #136, 28-Jan-89 12:12pm
Subject: R
Tom, my program FileKing moves, deletes, copies, renames, changes dates or
times of files, and changes attributes as well, from a Lotus type menu line,
operating on a highlighted file in an alphabetized list. It is supposed to be
published in the Jan/Feb issue of Turbo Tech Report
(which should not be confused with the defunct Turbo Technix.)
---
* Origin: THE SMORGAS-BOARD Monroeville, PA 1-412-733-3010 (Opus 1:129/32)
*** There is a reply. See #176.
From: Matt Franckiewicz
To: Michelle Wyner Msg #137, 29-Jan-89 12:14pm
Subject: Re: Tp 5.0
> I just got TP 5.0. REAL great program, but the users manual
> doesn't help much in learning Pascal. I've read it from
> front to back, and I know the basics, but I need to know
> more. Can anyone suggest a program (not the TP tutor for
> $69.95) or a book (under $20.00 preferably) that'll help
> me? Thanks.
I don't need my Turbo Tutor anymore, and I'm willing to part with it{ for ten
bucks. I have a number of Pascal books, and in my opinion, Turbo Tutor is the
way to learn the most the fastest. My version is a previous version, not 5.0
if 5.0 of Tutor even exists, {but for learning, I don't think it makes a great
deal of difference, since you gotta get th{e real nuances from the manual, and
from experience anyhow.
If interested, leave me{ a note here, and I'll give you my address.
---
* Origin: THE SMORGAS-BOARD Monroeville, PA 1-412-733-3010 (Opus 1:129/32)
*** Part of a conversation.
From: Hector Santos
To: Ross Wentworth Msg #138, 29-Jan-89 09:46am
Subject: Re: Pascal => C
>> The Turbo Pascal 3.0 -> Quick C transposer was in fact very bad. It
RW> Yes, I played around with it for a few hours and ended up
RW> deleting the translator and removing QuickC from my hard disk.
RW> I had hoped that by translating a few of my programs I could
RW> learn about C, unfortunately, the resultant code was so bloated
RW> and difficult to read that there was no way I could learn
RW> anything but bad programming habits from it.
Using Quick C to learn is very fustrating. I suggest Turbo C instead.
<hec>
--- Via Silver Xpress V2.10G Is it Ready?
* Origin: Pitt Xpress : Home of Opus Xpress (412) 864-2294 (1:129/82)
*** There is a reply. See #195.
From: Tim Van Over Of 152/18
To: Moderator Msg #139, 30-Jan-89 12:30am
Subject: Descriptor
Moderator,
An example... thanks for the replys so far...
--- Tv "God Bless..."
* Origin: PASCAL - National PASCAL Conference. (1:152/18) (8:7000/16)
*** This is a reply to #34.
From: Jon Guthrie
To: Joaquim Homrighausen Msg #140, 31-Jan-89 07:52pm
Subject: Re: TAP and PASCAL
JH> I and Joakim Hernberg started the TransAtlanticProject (TAP) in
JH> the winter of 1987 and would like to continue. But without your
JH> help it won't work. We need contributions regularly. Nothing
JH> big, $5-$10 per month or so will do.
You DO mean $5-$10 per month PER USER don't you?
Some of us are on a budget, I will contribute if mine permits.
--- Via OpXpress V1.06ß "Silver" SCIGUY - The Scourge of Delphi!
* Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
*** This is a reply to #83.
From: Jon Guthrie
To: Charles Falconer Msg #141, 31-Jan-89 07:26pm
Subject: Re: USES style
CF> For similar reasons I hate systems that clear the screen without
CF> being told. Rather than complex linkages, simply leave the
CF> previous report such as a directory, on the furshlugginer screen.
CF> For example, Telix allows me to call a directory, but then
CF> clears. Now I go through the transmit sequence, and mis-remember
CF> the exact name. Around we go again.
I refer to this as a program that 'does something for you.' Meaning
that the program does something without your knowledge or permission
when you may want to do something different. (I often say that I don't
like Unix because it 'does things for you.' After all, it KNOWS you
REALLY want it to do them, even if you don't.)
I prefer the Modula-2 import/export function because everything is out
in the open, and you can't accidentally include something that you
didn't want to and don't have any knowledge of.
--- Via OpXpress V1.06ß "Silver" SCIGUY - The Scourge of Delphi!
* Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
*** Part of a conversation.
From: Jon Guthrie
To: Jeff Posey Msg #142, 31-Jan-89 07:22pm
Subject: Re: Turbo 4.0
JP> Help.. In a program I put in
JP>
JP> Uses Blah, blah, graph;
JP>
JP> begin
JP> initgraph;
JP> circle(blah);
JP> end.
JP>
JP> and had no errors but when i ran it it said
JP> "You need to use initgraph first" or something? whats the deal?
I ran into this problem when I tried to use graphics on a program that
used up (just about) all of memory. Apparently, initgraph creates some
dynamic variables, and if the memory allocations fail it doesn't tell
anybody. If your program uses up a bunch of heap space, you may have
this problem.
--- Via OpXpress V1.06ß "Silver" SCIGUY - The Scourge of Delphi!
* Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
*** This is a reply to #35.
From: Jon Guthrie
To: Dave Goggin Msg #143, 31-Jan-89 07:14pm
Subject: Re: PASCAL RECURSION
DG> test 3: find the first 18 numbers in the fibonacci sequence. time
DG> is in seconds.
DG>
DG> recursive: 14.89 sec
DG> iterative: 0.13 sec
The reason most often given to not use recursion is the fuction call
overhead (which is minimal on any decent processor, and I DO include the
8088 in that.) The most common reason that recursive routines are
slower is the algorithm.
This fibonacci routine is a good example. Say you want to calculate
fib(18). Well, fib(18) := fib(17) + fib(16); and
fib(17) := fib(16) + fib(15); You will notice that need to know fib(16)
twice (once for 18, once for 17) but you only need to calculate it once.
The iterative routine only calculates it once, but the recursive routine
calculates it every time it needs it. This effect magnifies as you get
to smaller and smaller values of the argument. fib(1) and fib(0) are
calculated whole bunches of times. (It can number in the tens of
thousands of times, depending on the original number. The number of
executions rises VERY fast with the original argument to fib().)
--- Via OpXpress V1.06ß "Silver" SCIGUY - The Scourge of Delphi!
* Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
*** Part of a conversation.
From: Eugene White
To: Tony Shelton Msg #144, 31-Jan-88 05:39pm
Subject: .GIF
I got all new documentation from Borland when I converted to TP 5.0, what did
you get....
--- QuickBBS v2.03
* Origin: * DCC BBS - One wing of Online Computer Resources * (1:161/502)
*** Part of a conversation.
From: Eugene White
To: Parker Jordan Msg #145, 31-Jan-88 05:59pm
Subject: Re: ANSI UNIT
Please - use your lower case letters also - it makes it so much easier for us
older folks with bifocals etc....
--- QuickBBS v2.03
* Origin: * DCC BBS - One wing of Online Computer Resources * (1:161/502)
*** This is a reply to #116.
From: Neil Heller
To: All Msg #146, 31-Jan-89 10:30pm
Subject: WHERE'S THE PATH?
I have a question - can anyone help me? I am writting an
application in which I need to take the path, as it stood prior to my
entrance into the application, place it in a program variable, set a
new path and then restore the original path upon exit from the
application. As far as I can tell, Turbo Pascal "eats" the path upon
booting an application using the DOS UNIT. This is purely speculation
on my part. In any case, I have experienced that if an application
uses the EXEC command, the path (as it was prior to starting the
application) does not exist while the application holds sway over the
system. Can anyone tell me where the path went? It seems as though
Turbo Pascal probably places the path in a variable of its own and
does its own restoration upon exiting. Can anyone verify this or
refute it with knowledge of what's happening (for sure)? Keep in mind
that what I'm after is gaining a little more control over the path in
terms of controlling it while IN a Turbo Pascal application.
--- TBBS v2.0
* Origin: Diablo Valley PCUG-BBS, Walnut Creek, CA <415-943-6238> (161/55)
*** There is a reply. See #231.
From: Bob Hodge
To: Hector Santos Msg #147, 30-Jan-89 07:49am
Subject: CASE / GOTO
HS>Why? because turbo checks each VALUE condition. In Fortran or BASIC,
HS>the ON GOTO statement is a better method.
Hector, I think you may be laboring under a false assumption. (I'm
surprised no one else has left a message pointing this out.) The CASE
statement will ONLY execute the statement corresponding to the first
"correct" case. It will then proceed to the statement following the
CASE-terminating END. Therefore, your extra GOTO's at the end of each
case are unnecessary. I have often wished that there were a special
C-like case statement in Pascal that would allow execution to "fall
through" multiple cases. This would simplify a good deal of the
rigamarole I've gone through in some of my more object-oriented Pascal
programs. (And keep me from using C in some instances!)
EXAMPLE CODE:
charin := ReadKey;
case charin of
'A'..'Z','a'..'z' : writeln( 'Letter');
'0'..'9' : writeln( 'Digit');
'A'..'Z','0'..'9' : writeln( 'Capital letter or digit');
else writeln( 'Not defined.');
end;
If you run this, you'll see that the third case is never executed!
Bob Hodge
--- TMail v1.8
* Origin: Revelstone TBBS - Home of FidoNews (216/642-1034) (1:157/504)
From: Bob Hodge
To: George Butts Msg #148, 30-Jan-89 07:50am
Subject: TECHNOJOCKS V5
Is Technojocks 5.0 going to be shareware? From your description,
it doesn't sound like it. If not, could you post an address and/or
phone number for ordering? Thanks.
Bob Hodge
--- TMail v1.8
* Origin: Revelstone TBBS - Home of FidoNews (216/642-1034) (1:157/504)
From: Chris Samp
To: Henry Bailey Msg #149, 29-Jan-89 02:42pm
Subject: Re: beginn8r
Yes, you can get Turbo Pascal 5.0 for $44.50. I called Borland and found this
to be true. Here are the details:
You need a letter from your instructor, on school letterhead, saying that you
are, indeed, taking Pascal, and will use this copy for eduactional purposes.
Send that, with another letter saying what you want (Turbo Pascal 5.0 on
[type] disks..) and a check for $44.50. You will not have to pay shipping or
tax (if you live outside of Califorina). Send it to:
Attn: Education Department
Borland International
1800 Green Hills Road
PO Box 660001
95066-001
If you have any questions, you can call Borland at (408)438-8400.
--- QuickBBS v2.03
* Origin: CRIMP BBS [Sysop? Who Me?] (313) 582-6671 Wild! (1:120/116)
From: Bob Ransom
To: Scott Samet Msg #150, 29-Jan-89 10:17am
Subject: Re: TUG O'Wards IV
-> IRC = International Reply Coupon.
That's it!
--- QuickBBS v2.03
* Origin: The CREATIVE CONNECTION-Southfield, MI-(313) 559-9039 (1:120/96)
From: Roland Brown
To: Matt Franckiewicz Msg #151, 31-Jan-89 11:20am
Subject: Re: Keep command, Cntrl-C
> > be able to reset the interrupt to the original setting
> > by using those variables. I think there is even an example
> > of how to do that in the manual(s) but I don't remember
> > where.
>
> If you are sa{ying that by doing something like
> SaveInt24 := @YourNewInterrupt;
> you can change what the interrupt does, I think you are
No. What I was saying was that Turbo Pacal saves those vectors in those
pointers. If you want to you could reset the vectors to the original vector
by using the SetVect (whatever the correct command is) to SaveInt24. You
cannot simply do the above since all that would do is change the address in
the pointer.
roland
---
* Origin: Sky Pilot Point Mail Box Off 261/1004 (Opus 1:26102/4)
*** This is a reply to #135.
From: Jerry Brenner
To: Parker Jordan Msg #152, 31-Jan-89 04:22pm
Subject: Re: READ_KBD
I cannot find any mention of a read_kbd function in my technojocks manual.
What version do you have?
---
* Origin: Mdtn_BBS, (717) 948-0212 Middletown Pa Fidonet (Opus 1:150/511)
*** This is a reply to #114.
From: Jim Forbes
To: Andy Lester Msg #153, 31-Jan-89 10:22am
Subject: Looping style
> JF> Str_Length:= LENGTH(Source);
> JF> FOR Position:= 1 TO Str_Length DO
> Stylistic question: ... Why not simply say:
> for Position:=1 to length(source) do {blah}
Andy:
I used a compiler or interpreter at one time that evaluated the value
of a function in a looping statement each time through the loop. I figured
that it was worth allocating variable space in order to make the loop more
efficient. It turned into a habit that I never gave much thought to.
Since you mentioned it, I decided to check and see how TP does it.
Turbo evaluates the expression only once. (The correct way in my opinion.)
As a result, its inefficient to do it the way I did. Thanks for bringing
it to my attention.
---
* Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
From: Jim Forbes
To: Scott Samet Msg #154, 31-Jan-89 10:23am
Subject: compiler directives
> > {I$-} REPEAT GOTOXY(52,Num_Address+7); WRITE(' ':5);
>
> The syntax is {$I-}
Thanks, couldn't see the trees for the forest.
---
* Origin: Backstreet BBS [HST], Fulton, NY * (315)-593-1589 (Opus 1:260/325)
*** This is a reply to #6.
From: Mark Howard
To: Paul Lindquist Msg #155, 31-Jan-89 12:42pm
Subject: Re: BBS
> TP Board version 5.0 is the latest BBS written in Turbo Pascal.
> Source Code is available for the board. Paul Lindquist
Not for 5.0, if I'm not mistaken. Version 4.something was the last source
released.
-m
--- FD 2.00
* Origin: QuickBBS East [HST] - Distribution & Support (1:260/340)
*** Part of a conversation.
From: Mike Janke
To: Wes Fisher Msg #156, 30-Jan-89 06:13pm
Subject: Thanx!!
> Thanx for your help on the bits!!
No problem. Glad I could help.
--- FD 2.00
* Origin: Kendall BBS - Miami's First QuickBBS (1:135/4)
*** This is a reply to #9.
From: Terry Hamel
To: All Msg #157, 30-Jan-89 09:59am
Subject: Data Compression Routines
I'd really appriciate it if anyone could post their knowledge on data
compression routines. If you have any books that are good references or have
some routines in Pascal, please leave a reply.
--- Lynx v1.22
* Origin: EastSide Data Services - The New 105/61!
From: Greg Franklin
To: Doug Lewis Msg #158, 30-Jan-89 12:42am
Subject: Re: YEAR 2000
> I hear that the year 2000
> or every 2000 years there is 1 more day added to this year plus
> 1 day for Leap year making 30 days for Febuary. Is this correct
> or not? If so where do I find the documentation stating this?
Incorrect. Normally, a year divisible by 100 would not have a leap
year at all! But since 2000 is divisible by 400 (a special case),
there will be a normal 29-days-in-February leap year 11 years from
now.
(Hey, we oughta start planning the celebration party, don't you
think?)
--- Via OpXpress V1.07ß "Silver" Greg Franklin, an End User...
* Origin: The Migrants BBS Phx. Az. ░▒▓ (602) 264-2328 ▓▒░ (1:114/07)
*** Part of a conversation.
From: Ed Grey
To: Jason Smith Msg #159, 30-Jan-89 12:28pm
Subject: Re: Turbo Pascal
Hello Jason, Borland recently sold the rights for Turbo Pascal 3.0 (for CP/M)
to a company called Alpha Systems, their number is (408) 297-5583. Their
address is 711 Chatsworth Place, San Jose CA 95128. The person to contact is
Joe Wright. Hope this helps.
I am currently learning/using Turbo Pascal 3.0 on my CP/M computer. Take
care.
Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
--- QuickBBS v2.03
* Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
From: Ed Grey
To: Bill Shymanski Msg #160, 30-Jan-89 12:34pm
Subject: Re: turbo 5.0/cp/m disk formats
Turbo Pascal 3.01 for CP/M is available from:
Alpha Systems
711 Chatworth Place
San Jose, CA 95128
(408) 297-5583
contact: Joe Wright
I believe (not positive) that the current price is $69.00, I suggest that you
confirm price with Alpha Systems. Take care.
Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
--- QuickBBS v2.03
* Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
From: Ed Grey
To: All Msg #161, 30-Jan-89 12:50pm
Subject: Complete TP disk...
I have been using a book called the "Complete Turbo Pascal" (second edition)
by Jeff Duntemann, to help me with learning TP3.0. The seems to be okay. I
have managed to locate a disk with the source files listed in the first
edition of the book, but I would like to locate the updated source files from
the second edition (which also covers TP 3.0. If anyone has (or knows where I
can locate) the disk for the second editon of this book, please leave me a
message. Many thanks and take care.
Ed Grey, Sysop of Grey Matter BBS (213-971-6260)
--- QuickBBS v2.03
* Origin: Hatzlacha (213-466-3861) KESHERnet (Los Angeles, CA) (1:102/743)
From: Mark Farnan
To: Frank Barrus Msg #162, 28-Jan-89 10:39am
Subject: Re: Bypassing the main screen
> There are much easier ways to bypass that title screen.
> Simply load turbo with: TURBO FILENAME, where filename
> is the name
> of one of your TP5 files..... This way it'll load it
> There are much easier ways to bypass that title screen.
> and go to
> it directly...
The Title Screen is Also ByPassed if it finds a .PCK file in the directory.
It will go straight up, loading your last used file, and away you
go. !
Mark Farnan
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
From: Mark Farnan
To: Gary Doughty Msg #163, 28-Jan-89 09:53pm
Subject: Re: Quick Sort
> I have recently trying to fin a quick way to sort some items
> in an array. I can write a buble sort fine, but it is
> really slow. Can someone please tell me how to write a
> quick sort routine or better yet, give me some code? I
> needs to work on something about the size of an array of
> 300 strings.
Hmm, I have some source on the BBS for a ZIP Sort, which claims 1000 records
in a couple of secods Max. . It is a 2k arc.
Pandemonium Programers BBS (Fido 3:711/414) 61-2-411-7642
Mark Farnan
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
*** This is a reply to #91.
From: Mark Farnan
To: Mark Jeske Msg #164, 28-Jan-89 10:00pm
Subject: Re: MODEM
> Hello, I am pretty new to the pascal area. I have Turbo
> Pascal 5.0. I just have one question. i was wondering
> where all of the routines are for the modem? what about
> the routine to check if the phone is ringing or how to set
> the modem? Please help.
> Mark Jeske
Hi Mark. I have quite a few of Modem Routines on the BBS, but that's in
Australia.. To Check the if the Phone is Ringing you Have to interpret one of
2 things... 1- the RIng Detect Lene on the Comm Port, but not all modems use
this. Or Sit in a Loop waiting for Characters from the modem. You then have
to compare these with a string containing whatever your modem sends for a
RIng.. it is normally a No. or the word RING. this loop should have a time
limit from first character to end, otherwise ang Crap coming in will mess
things up... I have found the best way of talking to the Modem is to install
a Fossil program, like X00, and then use it via Interupts.
Mark Farnan - Pandemonium BBS - 3:711/414
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
*** This is a reply to #74.
From: Mark Farnan
To: William Foxhunter Msg #165, 28-Jan-89 10:10pm
Subject: Re: Byte Location
> Gee, does anyone know the byte location(s) of the cursor
> control word? That is, the memory location that controls
> the size of the cursor?
> Thanks.
It is not an actual BYTE location. You actually have to access the Registers
on the 6845 video display controller. (or Whatever the particular chip on an
EGA is). But he registers in question are the Same.
Video Display Registers.
To Access these registers, you have to Out to the Index Register ($3D4) the
Register you wish to Use. Then OutPut to The DataRegister ($3D5), the
information you wish it to contain. (Or Read from it).
The Cursor is defined by 2 Registers, 10 & 11. Register 10 defines the START
Scan line of it, and Register 11 Defines the STOP Scan Line.
(PS - Please Remember those of us with 16 scan lines on a line {VGA} -)
Thats about it
Oh, one more Suggestion. To Write to PORTS in PAscal. use the PORT[] Array eg
to Write the Index with Register 10.
Begin
Port[$3d8] := 10;
End.
Mark Farnan
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
From: David Dutton
To: ALL Msg #166, 29-Jan-89 01:01pm
Subject: Protocols
I desperately need several protocols in TP 4 or 5 source code. I would
rather not pay out for Protocol Engine but will if I have to. I need
specifically Zmodem, Xmodem and Modem7 but any are wanted. If possible can you
give me a net/node number where I can FREQ them. And please tell me size
before I call.
Thanks
David
--- msged 1.97S ZTC
* Origin: The Stop Point (FidoNet 3:712/504.2)
From: Mark Farnan
To: Dale Barnes Msg #167, 29-Jan-89 12:34pm
Subject: Re: TPB 5.0
> -> -->TPBoard 4.0 couldn't be recompiled after modification
> of
> -> -->source without an aftermarket item of some sort,
> from what
>
> With 5.0 you will need to following to recompile the code:
>
> Borland Database & Editor Toolbox
> TP Professional 5.0
> Protocol Engine (from the FD people).
>
> No easy or cheap way around.
Hmmm, I WANT Turbo Professional and the Protocol Engine DESPERATLY
!!!!!. Can any body please tell me where I can find/ get/ buy these
Programs. I have not seen Either in Australia. But would not mind getting
them from the US if I can just find out WHERE. I am writing my own BBS
system. (Yes I am feeling Suicidal :-).
Thanks Alot in advance.
Mark farnan
Pandemonium Programers BBS
61-2-411-7642
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
*** Part of a conversation.
From: Mark Farnan
To: Jon Guthrie Msg #168, 30-Jan-89 09:02am
Subject: Re: Setting Typematic Rate (TP4 or TP5)
JG> PK> According to Norton this should double the typematic rate:
JG>
JG>Your first mistake was to use Norton. (His information is never
JG>complete and is often wrong.)
Incomplete i'd agre with, never found it wrong though. I use The Programmers
PC SourceBook, by Thom Hogan, for most of my Reference. But Nortons comes
into use occasionally.
As for the Setting, TypMatic Rate it cannot be done on an Xt, only AT, Pcjr,
and the PS/2 stuff.
Mark Farnan
--- ConfMail V3.2
* Origin: Pandemonium Programers BBS - (We Will WOC YOU) (3:711/414)
*** There is a reply. See #223.
From: Wes Fisher
To: All Msg #169, 31-Jan-88 03:53pm
Subject: TPBoard
Does anyone have any info on TPBoard v5.0? I wanta look at it.
Notice I said TPBoard not TPascal.
Wes
--- QuickBBS v2.03
* Origin: WriteLn('I`ve got Pascal's Elbow!'); Connect 2400! (1:130/39)
From: Bruce Mahoney
To: Roland Brown Msg #170, 30-Jan-89 04:09pm
Subject: TUG Subscription
Can you or anyone give info about subscribing to TUG? Thanks..
---
* Origin: Huh? (Opus 1:170/211)
*** There is a reply. See #180.
From: Andy Lester
To: Mike Janke Msg #171, 30-Jan-89 07:24pm
Subject: Re: Help On The Way
> WHILE KeyPressed DO IF ReadKey = #0 Then ;
MJ> Can you explain the Then without anything following it? I first saw
MJ> that in a example in the Turbo Pro manual and thought it was a
MJ> misprint... but the darn thing worked.
There IS something following it: An empty statement. He could even have
written it as:
while Keypressed do
if ReadKey=#0 then
begin
end;
An empty statement generates no code, but can help things out. I've written
code like this before:
if a=b
then {nothing}
else process_stuff;
There IS a statement, in the syntactical sense, following the Then, but it
generates no code. Functionally, that statement is equivalent to
if a<>b
then process_stuff;
but sometimes I don't want to write it like that.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** Part of a conversation.
From: Andy Lester
To: James Williams Msg #172, 30-Jan-89 07:27pm
Subject: Screen-writes
JW> Anyways, This is how I do my direct screen-writes, but I've a Mono
JW> monitor, so I've never had to worry about Snow for the CGA screen:
But why bother? Turbo does it for you via WRITE and WRITELN, I thought. Am
I wrong about this?
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #51.
From: Andy Lester
To: Dave Goggin Msg #173, 30-Jan-89 07:30pm
Subject: PASCAL RECURSION
DG> the results seem to show that in order for recursion to work, you must
DG> plan carefully to get the maximum efficiency, and not overuse
DG> recursion when a simple solution exists.
Right! The factorial problem is a classic example of recursion, as well as a
classic example of what's called (I believe) "head to tail recursion", since
as soon as the recursive call is finished, the procedure ends.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #143.
From: Jean-Pierre Isore
To: All Msg #174, 27-Jan-89 10:32pm
Subject: USE OF ECHO
For the sake of all active users of Echoes, be it reminded that:
1. transmitting Echoes across the Continent is costing money
to the SYSOP of the system
2. The SYSOP bears no responsability for transmitting your private
mail at his/her expense
--------------------------------------------------
3. Therefore make sure any message placed in an Echo,
be it addressed to All or to any individual,
is placed in an Echo solely if it is of
interest to OTHER readers,
I insist OTHER readers
even if it is a private answer to a previous Echo
message!
-------------------------------------------------
4. Any message which is only of interest to you and the addressee
should be forwarded at YOUR expense through Net Mail!
5. I love Echoes but as a SYSOP I am fed up paying for other people's
private mail!
6. This rule is applicable to any Echo!
7. Use E-Mail for local private mail and Net-Mail for private outgoing
mail!
Jean-Pierre, SYSOP, InfoDoc-Montreal
--- TBBS v2.0
* Origin: The Canadian Videotex - InfoDoc-Montreal (514) 345-0565 (167/123)
From: Andy Lester
To: Rolan Yang Msg #175, 01-Feb-89 05:02pm
Subject: VIRUS
RY> I previously read a message about someone trying to write a virus
RY> in pascal. Well, my computer class is the most boring in the world
RY> and in between assignments I've been working on one. I have a working
RY> Does anyone know how I can get a directory into a TXT file from a
RY> pascal program??
Like we're going to help you on this one? Give us a break. Go do something
more productive with your time. Sleeping is a start.
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** Part of a conversation.
From: Andy Lester
To: Matt Franckiewicz Msg #176, 01-Feb-89 05:05pm
Subject: R
MF> is supposed to be published in the Jan/Feb issue of Turbo Tech Report
Where can we get a hold of this publication?
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** This is a reply to #136.
From: Andy Lester
To: Paul West Msg #177, 01-Feb-89 06:27pm
Subject: String Functions
PW> While I havn't tested Turbo Pascal to verify this..... many compilers
PW> would have to calculate the length of "SOURCE" each pass thru the
PW> loop. It makes a remarkable diffence in speed to pre-calculate the
PW> result rather than have the program do it many times over at run-time.
Nope. The length of the string isn't "calculated" at any time. Length(strg)
is exactly the same as ord(strg[0]). The first byte of the string holds the
length, and is treated as a plain ol' numeric byte.
Now, if they were ASCIIZ strings, where it had to search for a hex 00 as a
terminator, that would be something different.
Actually, length is not a function, but more a macro, a la C. A function
call is not generated, but simply the equivalent of
{$R- index checking off}
N:=ord(strg[0]);
{$R+}
Ord, Odd and Chr aren't functions, either, and with Turbo 4.0+'s
type-casting, they become unnecessary.
I USED to avoid using chr() and ord() all the time. I'd define
ESC:=chr(27) as a variable so that I'd not have to keep calling the chr()
function. However, chr(27) is really a character literal when compiled,
where the call to the variable ESC ate up more code...
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
*** There is a reply. See #206.
From: Andy Lester
To: All Msg #178, 01-Feb-89 07:13pm
Subject: ProDOS Pascal compilers
I'm about to undertake a fairly sizable project that will run on the Apple //e
series. I imagine it will be under ProDOS, although maybe DOS 3.3. My
question is: Are there any good Pascal compilers that will generate native
code that will run under either OS? I haven't seen any, but then again I've
not used DOS or ProDOS for a few years.... :-)
Thanks
Andy
--- msged 1.96S ZTC
* Origin: CONST PointName='Paradise City'; death=true; taxes=true;
(1:115/790.2)
From: Rich Myers
To: Pat Anderson Msg #179, 01-Feb-89 07:16pm
Subject: Re: Tpb 5.0
Yes I am interested in a TP5 board with complete source (provided it can be
done with a minimum of investment in 3rd party stuff) and for the last
question I am not writing one...
Rich
--- Operetta V0.5.1Γ
* Origin: The Twilight Zone (713) 497-5778 (1:106/301)
*** Part of a conversation.
From: Rich Lewis
To: Bruce Mahoney Msg #180, 01-Feb-89 08:40pm
Subject: Re: TUG Subscription
TUG address:
P.O. Box 1510
Poulsbo, Wa. 98370
Membership is $ 24/ yr U.S.
$ 28/ yr Canada & Mexico
$ 39/ yr elsewhere
Their BBS number is (206) 697-1151
---
* Origin: SoundingBoard 713-821-4148 Houston `Just Say NOpus' (Opus 1:106/12)
*** Part of a conversation.
From: John Klein @ 106/666
To: Rich Myers Msg #181, 01-Feb-89 09:17pm
Subject: Re: Tpb 5.0
In a message of <01 Feb 89 20:16:12>, Rich Myers (1:106/301) writes:
RM>Yes I am interested in a TP5 board with complete source (provided it
RM>can be done with a minimum of investment in 3rd party stuff) and for
RM>the last question I am not writing one...
RM>
RM>Rich
If you can't get a hold of Tboard 5.0. You might want to look into World
War Four (WWIV). It's written in TP3.0, but it's rather well done, and the
author releaed it for the sole purpose of people UTILIZING his source code.
Several BBS Systems have been made from it, The Message system is excellent.
Just thought t'might be helpful.
--- msged 1.97S ZTC
* Origin: My Private Hell (1:106/666)
*** This is a reply to #179.
From: Chris Cavers
To: All Msg #182, 02-Feb-89 01:55am
Subject: qs
Someone asked about a fast sort algorithm.
look into just about any data structures programming book and there should
be a listing for a sort routine called the 'quicksort'.
It is very fast!
Or look into a sort routine called the 'radix sort' which is also fast
--- TAGMAIL v0.22.02 Beta
* Origin: My Private Hell -- Houston,Tx (713)980-4824 (1:106/666.0)
From: dj murdoch
To: Jesper Wolf Msg #183, 30-Jan-89 06:46pm
Subject: TESSERACT
> I got hold of a version of tesseract for Turbopascal ver 4 but need one
> for Turbopascal Ver 5. Do you know if that one exists?
Yes, I think I saw a notice on Compuserve that it has been released recently.
I haven't got a copy yet - it seemed too insistent that I register, and I
didn't need it enough to send money or to live with the guilt of using it
unregistered :-)
--- ConfMail V3.31
* Origin: Murdoch's_Point - - (1:221/162.1005)
*** Part of a conversation.
From: Lou Garner
To: Mike Hinds Msg #184, 01-Feb-89 09:14pm
Subject: Re: TP 5.0
FYI, noticed that Jeff Dunteman has released his book updated
for TP 5.0. Good reference.
--- Via OpXpress V1.03ß Don't you MESS with Texas, son....!!
* Origin: The Tech Connect - **HST** (1:124/6215)
*** Part of a conversation.
From: Lou Garner
To: Reinhardt Mueller Msg #185, 01-Feb-89 09:19pm
Subject: PASCALs
>>you'll be as near to Pascal as you can get without actually
>>getting Turbo 5.0! Get it! You won't be disapointed. You'll won't
FYI, I read in the current issue of PC WEEK that MicroSoft is
about to issue QUICK PASCAL. Things are going to get pretty
confusing very soon.
One thing though... If they try to sell their product, it will
have to be better than TP 5.0 to succeed. Can you imagine what
that might result in?
--- Via OpXpress V1.03ß Don't you MESS with Texas, son....!!
* Origin: The Tech Connect - **HST** (1:124/6215)
From: Paul Lindquist
To: Terry Gaudet Msg #186, 31-Jan-89 10:24pm
Subject: Re: TURBO PASCAL 4 & 5
Turbo Pascal still had some memory problems that they didn't get solved.
Version 5.0 fixed that and added some more stuff.
Paul Lindquist
--- TBBS v2.0
* Origin: TBBS in '89, We aren't QUICKly Lost in Time 918-744-0249 (170/210)
*** Part of a conversation.
YOU ONLY HAVE 2 MIN. LEFT
From: Tom Bradford
To: Joerg Hegermann Msg #187, 01-Feb-89 04:24pm
Subject: Re: Style Debate #9,005
-> >Hi Tom,
-> >
-> >I'm writing from Singapore.
-> >I read your message regarding these F/X units.
-> >They sounded interesting to me.
-> >Are they public domain? And if so, is the source included?
-> >I'd be interested in downloading them in orderr to learn
-> >some pascal, since I'm still quite new to it.
-> >Perhaps if you could get me an account in your BBs I could
-> >download it from here? (That is if they aren't too
-> >big...otherwise I'll be poor due to the phone costs from
-> >here to the States).
-> >
-> >Cheers
-> >Joerg Hegermann
Upon logging on to my BBS, you will be automatically validated. Though, I
am not releasing source code with most of my Units. I do though have
example source code for the implementation of the individual Units that I
use.
The F/X-BBS - (617)567-8993 (1200/300BPS) - SysOp: Tom Bradford
--- QuickBBS v2.03
* Origin: Read My Lips: I Meant No New TEXAS! Yeah that's it! (1:101/160)
*** This is a reply to #59.
From: Rick Rakes
To: Kevin Lowey Msg #188, 31-Jan-89 10:36am
Subject: Re: Pascal Sucks
Boy what a jerk....
--- QuickBBS v2.03
* Origin: Felicia.. (804)591-0736[HST] Registered Quickbbs N News Va
(1:264/47)
*** Part of a conversation.
From: Rolan Yang
To: Rolan Yang Msg #189, 01-Feb-89 10:31am
Subject: Re: VIRUS
Sorry about one of my lines I had some type saying
CAT.TXT begin bla blabalbal
^
!
corrected line should read
CAT.TXT BEING bla blabalbal
Sorry,
ROlan YAng
--- QuickBBS v2.03
* Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
*** Part of a conversation.
From: Rolan Yang
To: Rolan Yang Msg #190, 01-Feb-89 10:38am
Subject: Re: VIRUS
Hmmm something is wrong... I can't think straight. I think I have the flu.
sorry
--- QuickBBS v2.03
* Origin: MicroMan BBS - Piscataway, NJ (201)463-1540 (1:107/334)
*** Part of a conversation.
From: Ross Wentworth
To: Charles Falconer Msg #191, 31-Jan-89 08:02pm
Subject: PascalP - MS DOS
> I will release the code generator and run-time library
> sources to responsible
> persons who will keep me informed, for CPM use, and will
> discuss the MSDOS port also (Compiler/codegenerator runs,
> but library has insects).
I am interested in working on the libraries for the DOS version. A while back
I created the functional equivelent of the DOS unit for a now defunct Pascal
compiler. I have intimate knowledge of low-level DOS programming and can
provide assistance in all many areas.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
From: Ross Wentworth
To: Scott Sirovy Msg #192, 31-Jan-89 08:04pm
Subject: Graphics and TSRs
> Has anyone got a TSR shell lying around? I'd rather just
> insert my
> routine into a shell than have to learn to write TSRs
> (although someday I
> will) now.
You can get my TSR package from the number listed below, the current version
is TPPOP18C.ARC, or the magic name of TPPOP.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
From: Ross Wentworth
To: Terry Gaudet Msg #193, 31-Jan-89 08:08pm
Subject: Turbo Pascal 4 & 5
> to programming (and somewhat ignorant) I was wondering if I
> should upgrade from my ver.3.0. If so which one (4 or 5)
> would you suggest
> as being the better buy? Thanks, Terry
Version 4.0 is no longer being marketed by Borland so that sort of limits your
choice. Version 5.0 has a few additions that make it a better choice, the
biggest enhancement is built in mini-debugger and support for their full blown
debugger (from the Turbo Assembler/Debugger package).
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** Part of a conversation.
From: Ross Wentworth
To: Tomas Gradin Msg #194, 31-Jan-89 08:13pm
Subject: TPPOP18B
> What is it?
It's a TSR programming unit. It basically allows you to quickly and easily
create resident popup programs (i.e. Sidekick (tm) like).
> And, where can I find it?
I don't know if it's available anywhere in zone 2, but you can FREQ it from my
bossnode (see below). The current version is TPPOP18C.ARC.
ShareWare?
Yes.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** This is a reply to #81.
From: Ross Wentworth
To: Hector Santos Msg #195, 31-Jan-89 08:27pm
Subject: Re: Pascal => C
> Using Quick C to learn is very fustrating. I suggest Turbo
> C instead.
That's my plan. Since money is a little tight at this time I'll just stick to
Turbo Pascal (which has never let me down). If I can find some sucker, uh,
lucky person - to buy or trade my QuickC package then I'll reconsider learning
C.
Ross Wentworth
--- FD 2.00
* Origin: St Dymphna's Retreat via Torrance BBS 213-370-9027 (1:102/345.1)
*** This is a reply to #138.
From: Kanda'jalen Eirsie
To: Syd Kahn Msg #196, 31-Jan-89 10:28pm
Subject: Re: Printing Graphics
Be more specific about what kind of graphics you want printed.
I had the same problem, only it was for a herculese screen.
Basicly the problem as explained to me by the many people at Borland
and The Compusearve Sig was that the Write and Writeln procedures are doctored
to stop output at a ^Z. If you have an epson type printer the basic procedure
is to look at all the bits on the screen in groups of 8 going down i.e if you
are working with a graphics screen,
Pixel 0,0 (upperlefthandcorner) is the first pixel you want, then
1,0 2,0 3,0 etc... Moving across the screen.. Get out your printer manual
and it will show you what graphics mode you want to print in.
Unless you want to get ahold of it yourself, I can supply you with a TP5.0
Unit that will set up the printer into various graphics modes by the use of a
procedure called Hardcopy() ;
Where the parameter is the mode you want to print in.
It reads any graphics screen and prints to an epson type printer.
With a little jazz, you can modify it to any type of printer and if
you want to print color, you would simply have to modify the subprocedure that
reads the screen, as it only reads whether a pixel is on or off..
I.E. Color <> 0 ; If you have a compusteal account, then it is available
there. I believe it's called PrnGrph. or GrphPrn something like that.
I made some modifications on the logic to get the databits and my
version runs about twice as fast. I optimized the way the data was read and
interpreted from the screen. Whoever wrotye it in the first place did it in 5
instructions. I Moved it into a Byte from a for loop, which was a bit faster
than his while loop.
Anyway,..
Kanda'
---
* Origin: Midi 'n Music 9600 (Irvine, CA - (714)552-3036) (Opus 1:103/516)
*** This is a reply to #105.
From: Jon Guthrie
To: Andy Lester Msg #197, 01-Feb-89 09:57pm
Subject: Re: USES style
Re: FROM module IMPORT stuff
AL> I think it's mostly to allow the programmer to explicitly say
AL> which code he wants imported from the units that he's using.
AL> If, for example, you're using unit CRT, but you're only using
AL> KeyPressed, you don't want the rest of the code that's in CRT
AL> sucked in as well, do you?
I don't think that the smart linker is the real reason that that feature
is included. As you pointed out, such things don't need extra source
code. A good reason to continue requiring the IMPORT list would be
this: suppose you had two different procedures with the same name, but
different functions in each of two different files. With the IMPORT
clause (is it called a clause? I'm not sure.) you can include one, but
not the other, but still use stuff from both files. Otherwise, you
would wind up specifying which source file the particular function came
from each time you used it. (One of these 'do it now, or do it a lot
later' deals.)
Before you start telling me that such a thing is far-fetched, I seem to
remember a problem somebody had recently that involved something
similar.
--- Via OpXpress V1.06ß "Silver" SCIGUY - The Scourge of Delphi!
* Origin: FOG-LINE;FOG#51;USR HST;515-964-7937 (1:14/627)
*** This is a reply to #141.
From: Mark Zylka
To: All Msg #198, 01-Feb-89 02:12pm
Subject: TML Pascal
Does anyone have TML Pascal? Is the documentation good enough? I have heard
it is a good program.. I would like a few more opinions.
---
* Origin: The PainFrame [where English is butchered] (301) 488-7461 (Opus
1:261/1004)
From: Lee Davis
To: All Msg #199, 31-Jan-89 08:34am
Subject: New Network
IMPORTANT MESSAGE TO SYSOPS - A NEW NET FOR THE 90'S!
A New NATIONAL NET has arrived on the scene. It's called BBS NET!
BBS NET will be a hassle free, friendly, exciting new Net. It will have
it's own echoes, newsletters, and nodelists. It will also, be a very
Democratic Net, in that the ZONE Coordinator (The guy in charge) will be
re-elected every 5 years, the NET & REGIONAL Coordinators will be re-
elected every 2 years (Local Net Heads and Regional Heads). So if you
dislike a head coordinator "YOU" get a chance to vote on a new person.
On top of all this, there will be 5 people who will be more in charge
than the ZONE Coordinator just in case some people have big problems
with policies, echoes and such.
BBS NET will not in any form be trying to take over any other NET, but
in fact, will be taking the best of all the NETS and combining it into
"1" SOLID "HASSLE FREE" NETWORK!
If this sounds like YOUR type of National Network, or you would just
like to add another NET to your bbs system then send Netmail to
137/13 or call 813-351-8483.
---
* Origin: Suncoast Data Exchange (813) 351-8654 BBS-Net 6/0 (Opus 1:137/13)
From: Holger Schurig
To: Heikki Levanto Msg #200, 29-Jan-89 07:14pm
Subject: Init section of unit & include
Heikki writes in "Re: C versus PASCAL":
HL> BTW, I told of a small bug here, you can't put an init section of an
HL> unit into an include file. Has that message disappeared, or don't you
HL> folks care ?
I answered to this. Not received ?
--- INFgate 0.10
* Origin: INFSYS-Development : Matrix to 2:507/628 (2:507/6.0)
From: Eef Hartman
To: Fabiano Fabris Msg #201, 29-Jan-89 12:22pm
Subject: Re: Files
> How do you do this:
>
> ->In a message of <12 Jan 89 20:45:42>, Mark Hopkins (1:343/8.13)
> writes:
This is done by a nifty little program, called MsgEd, which can be used by
SysOps and Points, sorry, not for "normal" human BBS callers
---
* Origin: Robert's programmer board tel 020 - 453903 (Opus 2:512/33)
*** This is a reply to #121.
From: Ruud Janssen
To: All Msg #202, 29-Jan-89 04:27pm
Subject: DOOLHOVEN.
Wie heeft er een programma dat doolhoven tekent op zowel het beeldscherm als
op een printer. Liefst geschreven in Turbo Pascal (3.0 of 4.0 of 5.0)
Groeten,
Ruud Janssen / TAM.
--- TBBS v2.0
* Origin: INFOboard CD-rom's online (2,5 gigabyte) 04780-88119 (14 lijnen)
(500/206)
From: Sebastian Shapiro
To: Wesley Williams Msg #203, 28-Jan-89 08:05am
Subject: record
OK. I forgot that...
Sebastian
---
* Origin: Marselisborg BBS (Opus 2:231/59)
From: Sebastian Shapiro
To: Joseph Dejesus Msg #204, 28-Jan-89 08:25am
Subject: Turbo BBS
There is a program called (ohhh Gosh) Turbo BBS...
If you can't find it on a BBS in your local area I will be glad to send you a
disk with the program, if you give me your address.
Sebastian Shapiro
---
* Origin: Marselisborg BBS (Opus 2:231/59)
From: Truls Meland
To: rich Myers Msg #205, 23-Jan-89 09:25pm
Subject: Re: Next TP version
How about this:
* The ability to compile, stop at error, let user correct error,
continue compilation FROM ERROR, not from the top.
Truls
--- Via OpXpress V1.07ß "Silver" *********** TEEM ***
* Origin: Perleporten : ***** OPUS BBS System Board (083)75442 *****
*** This is a reply to #96.
From: Per Holm
To: Scott Hucke Msg #206, 29-Jan-89 05:09pm
Subject: string functions
Hello Scott,
SH> i need a function to convert to uppercase and lower case for strings
If you grap your manual there's a small piece of Assembler code for a function
that will convert a STRING to uppercase.
Here's some code picked out from the OpInt Interface:
File: Case.Asm
---CUT---
CODE SEGMENT BYTE PUBLIC
ASSUME CS:CODE
PUBLIC UpperCase, LowerCase ;Make them known
;---------UpperCase
;function UpperCase(S:String) : String;
;Convert String to UpperCase
UpperRes EQU DWORD PTR [BP+10]
UpperStr EQU DWORD PTR [BP+6]
UpperCase PROC FAR
PUSH BP ;Save BP
MOV BP,SP ;Set up stack frame
PUSH DS ;Save DS
LDS SI,UpperStr ;Load String address
LES DI,UpperRes ;Load result address
CLD ;Forward string-ops
LODSB ;Load string length
STOSB ;Copy to result
MOV CL,AL ;String length to CX
XOR CH,CH
JCXZ U3 ;Skip if empty
U1: LODSB ;Load charecter
CMP AL,'a' ;Skip if not 'a' to 'z'
JB U2
CMP AL,'z'
JA U2
SUB AL,'a'-'A' ;Convert to uppercase
U2: STOSB ;Store in result
LOOP U1 ;Loop for all charecters
U3: POP DS ;Restore DS
POP BP ;Restore BP
RET 4 ;Remove parameter and return
UpperCase ENDP
;---------LowerCase
;function LowerCase(S:String) : String;
;Convert String to LoverCase
LowerCase PROC FAR
PUSH BP ;Save BP
MOV BP,SP ;Set up stack frame
PUSH DS ;Save DS
LDS SI,UpperStr ;Load String address
LES DI,UpperRes ;Load result address
CLD ;Forward string-ops
LODSB ;Load string length
STOSB ;Copy to result
MOV CL,AL ;String length to CX
XOR CH,CH
JCXZ L3 ;Skip if empty
L1: LODSB ;Load charecter
CMP AL,'A' ;Skip if not 'a' to 'z'
JB L2
CMP AL,'Z'
JA L2
ADD AL,'a'-'A' ;Convert to lovercase
L2: STOSB ;Store in result
LOOP L1 ;Loop for all charecters
L3: POP DS ;Restore DS
POP BP ;Restore BP
RET 4 ;Remove parameter and return
LowerCase ENDP
CODE ENDS
END
---CUT---
File: Test.Pas
---CUT---
{F+}
{$L Case.Obj}
Function Uppercase(S:String):String; External;
Function Lowercase(S:String):String; External;
{$F-}
BEGIN
WriteLn(UpperCase('Testing This OpInt Function'));
WriteLn(LowerCase('And This one Too'));
END.
---Cut---
Like the other examples these routines doesn't take the special european
letters like the danish. (AE, OE, AA, ae, oe & aa). This might easily be added
to the code if you need it.
Hope this might help you, the .ASM file should be compiled to an .OBJ file
with an Assembler.
Happy Programming.
Per Holm.
--- ConfMail V3.31ph3
* Origin: Asgaard BBS - Home of OpInt - +45-6-119043 (2:230/22)
*** This is a reply to #177.
From: Mike Janke
To: Tony Hsieh Msg #207, 01-Feb-89 06:11am
Subject: Re: HELP ON THE WAY
> The statement
> IF READKEY=#0 then ;
> the reason for the semi-colon immediately after the then is
> so that it'll mean "do nothing."
Thank you. After thinking about it, I can see where it would be useful at
times.
--- FD 2.00
* Origin: Kendall BBS - Miami's First QuickBBS (1:135/4)
*** Part of a conversation.
From: Kevin Lowey
To: All Msg #208, 30-Jan-89 04:35pm
Subject: Alternative to Turbo Technix
Hi,
I've seen a number of messages lamenting the demise of Turbo Technix.
I thought you might be interested in an alternative.
The Turbo User's Group is a group for discussion of BORLAND
programming products, including Pascal, C, Prolog, Basic and even Paradox
macros. They publish a bimonthly newsletter. It isn't as glossy as TT was,
but the articles ARE interesting. They also distribute public domain and
shareware diskettes, and run their own multiuser BBS system for discussing
BORLAND products. Finally, they also sponsor a yearly programming contest in
which the members of TUG are the judges.
They used to get free advertising from Borland in every product sold,
but Borland (without warning) stopped including their prospectus. So now they
are stuck with no way to let people know about them. That's why I'm posting
this message. I think they are a nonprofit organization, so I don't think I'm
breaking any Echomail rules. If I am, please forgive me.
The yearly membership dues are $24 US in the US, $28 US in Canada
and Mexico, and $39 US overseas. To join, send a letter to
Turbo User's Group (TUG)
P.O. Box 1510
Poulsbo, Washington USA 98370
Include the following information:
Name, Company, Mailing Address, City, State/Province, Zip/Postal
code, and Country. You can pay by cheque, money order, Mastercard, or VISA
(include card number and expiry date).
-- Kevin Lowey
---
* Origin: University of Sask. Computing Services (Opus 1:140/43)
From: Colten D. Edwards
To: Kevin Kwast @ 930/1 Msg #209, 31-Jan-89 03:42am
Subject: Transfer Protocols
TPZSFZ or some such name (Zmodem Src) is available from 152/2 or 140/48 or
161/205 at least. WxModem.ARC is avaiable from 140/48 and possibly others.
First time download priv or Freq 23 hrs a day
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** Part of a conversation.
From: Colten D. Edwards
To: Tony Shelton Msg #210, 31-Jan-89 03:49am
Subject: .GIF
All you should have gotten with your upgrade is a Reference manual and a Users
guide. BTW if you don't want one of the Update manuals I would pay the
shipping to get it. Before anyone flames me though I do have a purchased copy
of TP5, but it would be nice to have a extra manual one for work and one for
home. Save some lugging of manuls. I called Borland and inquired but noway
don't sell the manuals alone...
Anyways send netmail if possible to 140/48 or 140/51 either way I'll get the
message or leave a message with a number where you might be reached and I'll
call you....
--- ConfMail V4.00
* Origin: Treasure Isle Private Mail System (1:140/51)
*** This is a reply to #144.
TIME LIMIT.YJ$D≡
NO CARRIER